1 ;;;; -*- Mode: LISP; Syntax: ANSI-Common-Lisp; Base: 10 -*-
2 ;;;; *************************************************************************
3 ;;;; FILE IDENTIFICATION
5 ;;;; Id: $Id: tests.lisp,v 1.6 2003/08/04 12:28:46 kevin Exp $
6 ;;;; Purpose: Test suite for XLUnit
8 ;;;; *************************************************************************
10 (in-package #:cl-user)
11 (defpackage #:xlunit-tests
14 (in-package #:xlunit-tests)
17 ;; Helper test fixture
19 (defclass was-run (test-fixture)
20 ((log :accessor ws-log)))
22 (defmethod setup ((self was-run))
23 (setf (ws-log self) "setup "))
25 (defmethod teardown ((self was-run))
26 (setf (ws-log self) (concatenate 'string (ws-log self) "teardown ")))
28 (defmethod test-method ((self was-run))
29 (setf (ws-log self) (concatenate 'string (ws-log self) "test-method ")))
31 (defmethod test-broken-method ((self was-run))
32 (assert-equal pi (/ 22 7)))
34 (defmethod test-error-method ((self was-run))
40 (defclass test-case-test (test-fixture)
43 (defmethod test-template-method ((self test-case-test))
44 (let ((test (make-test 'was-run 'test-method)))
46 (assert-equal (ws-log test) "setup test-method teardown ")))
48 (defmethod test-result ((self test-case-test))
49 (assert-equal "1 run, 0 erred, 0 failed"
50 (summary (run-test (make-test 'was-run 'test-method)))))
52 (defmethod test-fn ((self test-case-test))
53 (let ((test (make-test 'was-run '"Test Failure"
56 (declare (ignore test))
57 (assert-equal 10 10)))))
58 (assert-equal "1 run, 0 erred, 0 failed"
59 (summary (run-test test)))))
61 (defmethod test-failed-result ((self test-case-test))
62 (assert-equal "1 run, 0 erred, 1 failed"
64 (make-test 'was-run 'test-broken-method)))))
66 (defmethod test-error-result ((self test-case-test))
67 (assert-equal "1 run, 1 erred, 0 failed"
69 (make-test 'was-run 'test-error-method)))))
71 (defmethod test-suite ((self test-case-test))
72 (let ((suite (make-test-suite "TestSuite"))
73 (result (make-test-result)))
74 (add-test (make-test 'was-run 'test-method) suite)
75 (add-test (make-test 'was-run 'test-broken-method) suite)
76 (run-test suite :result result)
77 (assert-equal "2 run, 0 erred, 1 failed" (summary result))))
79 (defmethod test-dynamic-suite ((self test-case-test))
80 (assert-equal "3 run, 1 erred, 1 failed"
81 (summary (run-test (make-test-suite 'was-run)))))
83 (text-testrunner (make-test-suite 'test-case-test) :handle-errors nil)
88 (run-test (make-test-suite 'test-case-test)))
89 (error "Failed tests")))