;;;; -*- Mode: LISP; Syntax: ANSI-Common-Lisp; Base: 10 -*- ;;;; ************************************************************************* ;;;; FILE IDENTIFICATION ;;;; ;;;; Name: tests.lisp ;;;; Purpose: Test suite for XLUnit ;;;; Author: Kevin Rosenberg ;;;; ;;;; Put in public domain by Kevin Rosenberg ;;;; $Id: tests.lisp,v 1.3 2003/08/04 09:50:33 kevin Exp $ ;;;; ************************************************************************* (defpackage #:xlunit-tests (:use #:cl #:xlunit)) (in-package #:xlunit-tests) (defclass was-run (test-fixture) ((log :accessor ws-log))) (defmethod setup ((self was-run)) (setf (ws-log self) "setup ")) (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 "))) (defmethod test-broken-method ((self was-run)) (assert-equal pi (/ 22 7))) (defmethod test-error-method ((self was-run)) (error "Err")) (defclass test-case-test (test-fixture) ((result :accessor result))) (defmethod setup ((self test-case-test)) (setf (result self) (make-instance 'test-result))) (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))