1 ;;;; -*- Mode: LISP; Syntax: ANSI-Common-Lisp; Base: 10 -*-
2 ;;;; *************************************************************************
3 ;;;; FILE IDENTIFICATION
5 ;;;; Id: $Id: tests.lisp,v 1.5 2003/08/04 12:16:13 kevin Exp $
6 ;;;; Purpose: Test suite for XLUnit
8 ;;;; *************************************************************************
10 (defpackage #:xlunit-tests
13 (in-package #:xlunit-tests)
16 ;; Helper test fixture
17 (defclass was-run (test-fixture)
18 ((log :accessor ws-log)))
20 (defmethod setup ((self was-run))
21 (setf (ws-log self) "setup "))
23 (defmethod teardown ((self was-run))
24 (setf (ws-log self) (concatenate 'string (ws-log self) "teardown ")))
26 (defmethod test-method ((self was-run))
27 (setf (ws-log self) (concatenate 'string (ws-log self) "test-method ")))
29 (defmethod test-broken-method ((self was-run))
30 (assert-equal pi (/ 22 7)))
32 (defmethod test-error-method ((self was-run))
37 (defclass test-case-test (test-fixture)
40 (defmethod test-template-method ((self test-case-test))
41 (let ((test (make-test 'was-run 'test-method)))
43 (assert-equal (ws-log test) "setup test-method teardown ")))
45 (defmethod test-result ((self test-case-test))
46 (assert-equal "1 run, 0 erred, 0 failed"
47 (summary (run-test (make-test 'was-run 'test-method)))))
49 (defmethod test-fn ((self test-case-test))
50 (let ((test (make-test 'was-run '"Test Failure"
53 (declare (ignore test))
54 (assert-equal 10 10)))))
55 (assert-equal "1 run, 0 erred, 0 failed"
56 (summary (run-test test)))))
58 (defmethod test-failed-result ((self test-case-test))
59 (assert-equal "1 run, 0 erred, 1 failed"
61 (make-test 'was-run 'test-broken-method)))))
63 (defmethod test-error-result ((self test-case-test))
64 (assert-equal "1 run, 1 erred, 0 failed"
66 (make-test 'was-run 'test-error-method)))))
68 (defmethod test-suite ((self test-case-test))
69 (let ((suite (make-test-suite "TestSuite"))
70 (result (make-test-result)))
71 (add-test (make-test 'was-run 'test-method) suite)
72 (add-test (make-test 'was-run 'test-broken-method) suite)
73 (run-test suite :result result)
74 (assert-equal "2 run, 0 erred, 1 failed" (summary result))))
76 (defmethod test-dynamic-suite ((self test-case-test))
77 (assert-equal "3 run, 1 erred, 1 failed"
78 (summary (run-test (make-test-suite 'was-run)))))
80 (text-testrunner (make-test-suite 'test-case-test) :handle-errors nil)
84 (run-test (make-test-suite 'test-case-test)))
85 (error "Failed tests")))