;;;; Author: Kevin Rosenberg
;;;;
;;;; Put in public domain by Kevin Rosenberg
-;;;; $Id: tests.lisp,v 1.3 2003/08/04 09:50:33 kevin Exp $
+;;;; $Id: tests.lisp,v 1.4 2003/08/04 12:01:54 kevin Exp $
;;;; *************************************************************************
(defpackage #:xlunit-tests
(in-package #:xlunit-tests)
+
+;; Helper test fixture
(defclass was-run (test-fixture)
((log :accessor ws-log)))
-
(defmethod setup ((self was-run))
(setf (ws-log self) "setup "))
(defmethod test-error-method ((self was-run))
(error "Err"))
-(defclass test-case-test (test-fixture)
- ((result :accessor result)))
+;;; Main test fixture
-(defmethod setup ((self test-case-test))
- (setf (result self) (make-instance 'test-result)))
+(defclass test-case-test (test-fixture)
+ ())
(defmethod test-template-method ((self test-case-test))
(let ((test (make-test 'was-run 'test-method)))
- (run-test test (result self))
+ (run-test test)
(assert-equal (ws-log test) "setup test-method teardown ")))
(defmethod test-result ((self test-case-test))
- (let ((test (make-test 'was-run 'test-method)))
- (run-test test (result self))
- (assert-equal "1 run, 0 errored, 0 failed" (summary (result self)))))
+ (assert-equal "1 run, 0 erred, 0 failed"
+ (summary (run-test (make-test 'was-run 'test-method)))))
(defmethod test-thunk ((self test-case-test))
(let ((test (make-test 'was-run '"Test Failure"
(lambda (test)
(declare (ignore test))
(assert-equal 10 10)))))
- (run-test test (result self))
- (assert-equal "1 run, 0 errored, 0 failed"
- (summary (result self)))))
+ (assert-equal "1 run, 0 erred, 0 failed"
+ (summary (run-test test)))))
(defmethod test-failed-result ((self test-case-test))
- (let ((test (make-test 'was-run 'test-broken-method)))
- (run-test test (result self))
- (assert-equal "1 run, 0 errored, 1 failed"
- (summary (result self)))))
+ (assert-equal "1 run, 0 erred, 1 failed"
+ (summary (run-test
+ (make-test 'was-run 'test-broken-method)))))
(defmethod test-error-result ((self test-case-test))
- (let ((test (make-test 'was-run 'test-error-method)))
- (run-test test (result self))
- (assert-equal "1 run, 1 errored, 0 failed"
- (summary (result self)))))
-
+ (assert-equal "1 run, 1 erred, 0 failed"
+ (summary (run-test
+ (make-test 'was-run 'test-error-method)))))
+
(defmethod test-suite ((self test-case-test))
- (let ((suite (make-test-suite "TestSuite")))
+ (let ((suite (make-test-suite "TestSuite"))
+ (result (make-test-result)))
(add-test (make-test 'was-run 'test-method) suite)
(add-test (make-test 'was-run 'test-broken-method) suite)
- (run-test suite (result self)))
- (assert-equal "2 run, 0 errored, 1 failed"
- (summary (result self))))
+ (run-test suite :result result)
+ (assert-equal "2 run, 0 erred, 1 failed" (summary result))))
(defmethod test-dynamic-suite ((self test-case-test))
- (let ((suite (make-test-suite 'was-run)))
- (run-test suite (result self)))
- (assert-equal "3 run, 1 errored, 1 failed"
- (summary (result self))))
+ (assert-equal "3 run, 1 erred, 1 failed"
+ (summary (run-test (make-test-suite 'was-run)))))
-(text-testrunner (make-test-suite 'test-case-test))
+(text-testrunner (make-test-suite 'test-case-test) :handle-errors nil)
+(defun do-tests ()
+ (or (was-successful
+ (run-test (make-test-suite 'test-case-test)))
+ (error "Failed tests")))