X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=tests.lisp;h=0cba6c31ee836821a49826788d9da1aec744e292;hb=6c233c812b0e160d80e613bb3dfcedc59514e3e9;hp=101125a21730ba790a91f89cf33ba6aa13dd11e7;hpb=34803ef0f0a02430b51382e7684f6d775d135953;p=xlunit.git diff --git a/tests.lisp b/tests.lisp index 101125a..0cba6c3 100644 --- a/tests.lisp +++ b/tests.lisp @@ -2,89 +2,93 @@ ;;;; ************************************************************************* ;;;; FILE IDENTIFICATION ;;;; -;;;; Name: tests.lisp -;;;; Purpose: Test suite for XLUnit -;;;; Author: Kevin Rosenberg +;;;; Id: $Id: tests.lisp,v 1.10 2003/08/04 19:42:18 kevin Exp $ +;;;; Purpose: Test suite for XLUnit ;;;; -;;;; Put in public domain by Kevin Rosenberg -;;;; $Id: tests.lisp,v 1.3 2003/08/04 09:50:33 kevin Exp $ ;;;; ************************************************************************* +(in-package #:cl-user) (defpackage #:xlunit-tests - (:use #:cl #:xlunit)) - + (:use #:cl #:xlunit) + (:export #:do-tests)) (in-package #:xlunit-tests) -(defclass was-run (test-fixture) + +;; Helper test fixture + +(defclass was-run (test-case) ((log :accessor ws-log))) +(defmethod set-up ((self was-run)) + (setf (ws-log self) "setup ")) -(defmethod setup ((self was-run)) - (setf (ws-log self) "setup ")) +(defmethod tear-down ((self was-run)) + (setf (ws-log self) + (concatenate 'string (ws-log self) "teardown "))) -(defmethod teardown ((self was-run)) - (setf (ws-log self) (concatenate 'string (ws-log self) "teardown "))) +(def-test-method (test-method self was-run :run nil) + (setf (ws-log self) + (concatenate 'string (ws-log self) "test-method "))) -(defmethod test-method ((self was-run)) - (setf (ws-log self) (concatenate 'string (ws-log self) "test-method "))) +(def-test-method (test-broken-method self was-run :run nil) + (assert-equal pi (/ 22 7))) -(defmethod test-broken-method ((self was-run)) - (assert-equal pi (/ 22 7))) +(def-test-method (test-error-method self was-run :run nil) + (error "Err")) -(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-case) + ()) -(defmethod test-template-method ((self test-case-test)) - (let ((test (make-test 'was-run 'test-method))) - (run-test test (result self)) - (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))))) - -(defmethod test-thunk ((self test-case-test)) - (let ((test (make-test 'was-run '"Test Failure" - :test-thunk - (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))))) - -(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))))) - -(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))))) - -(defmethod test-suite ((self test-case-test)) - (let ((suite (make-test-suite "TestSuite"))) - (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)))) - -(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)))) - -(text-testrunner (make-test-suite 'test-case-test)) +(def-test-method (test-template-method self test-case-test :run nil) + (let ((test (named-test 'test-method (get-suite was-run)))) + (run test) + (assert-equal (ws-log test) "setup test-method teardown "))) +(def-test-method (test-results self test-case-test :run nil) + (assert-equal "1 run, 0 erred, 0 failed" + (summary (run (named-test 'test-method (get-suite was-run)))))) + +(def-test-method (test-fn self test-case-test :run nil) + (let ((test (make-instance 'test-case :name 'test-fn + :method-body + (lambda () + (declare (ignore test)) + (assert-equal 10 10))))) + (assert-equal "1 run, 0 erred, 0 failed" + (summary (run test))))) + +(def-test-method (test-failed-result self test-case-test :run nil) + (assert-equal "1 run, 0 erred, 1 failed" + (summary (run + (named-test 'test-broken-method + (get-suite was-run)))))) + +(def-test-method (test-error-result self test-case-test :run nil) + (assert-equal "1 run, 1 erred, 0 failed" + (summary (run + (named-test 'test-error-method + (get-suite was-run)))))) + +(def-test-method (test-suite self test-case-test :run nil) + (let ((suite (make-instance 'test-suite)) + (result (make-test-results))) + (add-test suite (named-test 'test-method (get-suite was-run))) + (add-test suite (named-test 'test-broken-method (get-suite was-run))) + (run-on-test-results suite result) + (assert-equal "2 run, 0 erred, 1 failed" (summary result)))) + +(def-test-method (test-dynamic-suite self test-case-test :run nil) + (assert-equal "3 run, 1 erred, 1 failed" + (summary (run (get-suite was-run))))) + + +(textui-test-run (get-suite test-case-test)) + + +(defun do-tests () + (or (was-successful (run (get-suite test-case-test))) + (error "Failed tests")))