r5449: *** empty log message ***
[xlunit.git] / tests.lisp
index 101125a21730ba790a91f89cf33ba6aa13dd11e7..ef8ed7cf01b09b19da9a99ed82ee962d48ead6dd 100644 (file)
@@ -7,7 +7,7 @@
 ;;;; 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")))