X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=tests.lisp;h=b14b68919525d47c85ef211e0af7b1c7f7dd9800;hb=8e9bc32063b4197e64863afa179ba09e85737a05;hp=ef8ed7cf01b09b19da9a99ed82ee962d48ead6dd;hpb=318cda1a328e9d99af2270c73cb13262e485a1ff;p=xlunit.git diff --git a/tests.lisp b/tests.lisp index ef8ed7c..b14b689 100644 --- a/tests.lisp +++ b/tests.lisp @@ -2,87 +2,158 @@ ;;;; ************************************************************************* ;;;; FILE IDENTIFICATION ;;;; -;;;; Name: tests.lisp -;;;; Purpose: Test suite for XLUnit -;;;; Author: Kevin Rosenberg +;;;; Id: $Id$ +;;;; Purpose: Self Test suite for XLUnit ;;;; -;;;; Put in public domain by Kevin Rosenberg -;;;; $Id: tests.lisp,v 1.4 2003/08/04 12:01:54 kevin Exp $ ;;;; ************************************************************************* +(in-package #:cl-user) (defpackage #:xlunit-tests - (:use #:cl #:xlunit)) - + (:use #:cl #:xlunit) + (:export #:do-tests)) (in-package #:xlunit-tests) +(define-condition test-condition (error) + ()) + ;; Helper test fixture -(defclass was-run (test-fixture) + +(defclass was-run (test-case) ((log :accessor ws-log))) -(defmethod setup ((self was-run)) - (setf (ws-log self) "setup ")) +(defmethod set-up ((self was-run)) + (setf (ws-log self) "setup ")) + +(defmethod tear-down ((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 "))) + +(def-test-method test-broken-method ((self was-run) :run nil) + (assert-equal pi (/ 22 7))) + +(def-test-method test-not-eql ((self was-run) :run nil) + (assert-not-eql (cons t t) (cons t t))) + +(def-test-method test-eql ((self was-run) :run nil) + (let ((obj (cons t t))) + (assert-eql obj obj))) + +(def-test-method test-error-method ((self was-run) :run nil) + (error "Err")) + +(def-test-method test-condition-without-cond ((self was-run) :run nil) + (assert-condition 'error (list 'no-error))) + +#+ignore +(def-test-method test-not-condition-with-cond ((self was-run) :run nil) + (assert-not-condition 'test-condition + (signal 'test-condition))) -(defmethod teardown ((self was-run)) - (setf (ws-log self) (concatenate 'string (ws-log self) "teardown "))) -(defmethod test-method ((self was-run)) - (setf (ws-log self) (concatenate 'string (ws-log self) "test-method "))) +;;; Second helper test case -(defmethod test-broken-method ((self was-run)) - (assert-equal pi (/ 22 7))) +(defclass test-two-cases (test-case) + ()) + +(def-test-method test-1 ((self test-two-cases) :run nil) + (assert-true t)) -(defmethod test-error-method ((self was-run)) - (error "Err")) +(def-test-method test-2 ((self test-two-cases) :run nil) + (assert-false nil)) ;;; Main test fixture -(defclass test-case-test (test-fixture) +(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) + +(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 "))) -(defmethod test-result ((self test-case-test)) +(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-eql ((self test-case-test) :run nil) + (assert-equal "1 run, 0 erred, 0 failed" + (summary (run (named-test 'test-eql (get-suite was-run)))))) + +(def-test-method test-not-eql ((self test-case-test) :run nil) (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" - :test-thunk - (lambda (test) - (declare (ignore test)) - (assert-equal 10 10))))) + (summary (run (named-test 'test-not-eql + (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 test))))) + (summary (run test))))) -(defmethod test-failed-result ((self test-case-test)) +(def-test-method test-failed-result ((self test-case-test) :run nil) (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)) - (assert-equal "1 run, 1 erred, 0 failed" - (summary (run-test - (make-test 'was-run 'test-error-method))))) + (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)))))) -(defmethod test-suite ((self test-case-test)) - (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 result) +(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)))) -(defmethod test-dynamic-suite ((self test-case-test)) - (assert-equal "3 run, 1 erred, 1 failed" - (summary (run-test (make-test-suite 'was-run))))) +(def-test-method test-dynamic-suite ((self test-case-test) :run nil) + (assert-equal "2 run, 0 erred, 0 failed" + (summary (run (get-suite test-two-cases))))) + +(def-test-method test-condition ((self test-case-test) :run nil) + (assert-condition + 'test-condition + (error 'test-condition))) + +(def-test-method test-condition-without-cond ((self test-case-test) + :run nil) + (assert-equal "1 run, 0 erred, 1 failed" + (summary (run + (named-test 'test-condition-without-cond + (get-suite was-run)))))) + +#+ignore +(def-test-method test-not-condition ((self test-case-test) :run nil) + (assert-not-condition + 'test-condition + (progn))) + +#+ignore +(def-test-method test-not-condition-with-cond ((self test-case-test) + :run nil) + (assert-equal "1 run, 0 erred, 1 failed" + (summary (run + (named-test 'test-not-condition-with-cond + (get-suite was-run)))))) + +#+ignore +(textui-test-run (get-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))) + (or (was-successful (run (get-suite test-case-test))) (error "Failed tests")))