1 ;;;; -*- Mode: LISP; Syntax: ANSI-Common-Lisp; Base: 10 -*-
2 ;;;; *************************************************************************
3 ;;;; FILE IDENTIFICATION
5 ;;;; Id: $Id: tests.lisp,v 1.10 2003/08/04 19:42:18 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-case)
20 ((log :accessor ws-log)))
22 (defmethod set-up ((self was-run))
23 (setf (ws-log self) "setup "))
25 (defmethod tear-down ((self was-run))
27 (concatenate 'string (ws-log self) "teardown ")))
29 (def-test-method (test-method self was-run :run nil)
31 (concatenate 'string (ws-log self) "test-method ")))
33 (def-test-method (test-broken-method self was-run :run nil)
34 (assert-equal pi (/ 22 7)))
36 (def-test-method (test-error-method self was-run :run nil)
42 (defclass test-case-test (test-case)
46 (def-test-method (test-template-method self test-case-test :run nil)
47 (let ((test (named-test 'test-method (get-suite was-run))))
49 (assert-equal (ws-log test) "setup test-method teardown ")))
51 (def-test-method (test-results self test-case-test :run nil)
52 (assert-equal "1 run, 0 erred, 0 failed"
53 (summary (run (named-test 'test-method (get-suite was-run))))))
55 (def-test-method (test-fn self test-case-test :run nil)
56 (let ((test (make-instance 'test-case :name 'test-fn
59 (declare (ignore test))
60 (assert-equal 10 10)))))
61 (assert-equal "1 run, 0 erred, 0 failed"
62 (summary (run test)))))
64 (def-test-method (test-failed-result self test-case-test :run nil)
65 (assert-equal "1 run, 0 erred, 1 failed"
67 (named-test 'test-broken-method
68 (get-suite was-run))))))
70 (def-test-method (test-error-result self test-case-test :run nil)
71 (assert-equal "1 run, 1 erred, 0 failed"
73 (named-test 'test-error-method
74 (get-suite was-run))))))
76 (def-test-method (test-suite self test-case-test :run nil)
77 (let ((suite (make-instance 'test-suite))
78 (result (make-test-results)))
79 (add-test suite (named-test 'test-method (get-suite was-run)))
80 (add-test suite (named-test 'test-broken-method (get-suite was-run)))
81 (run-on-test-results suite result)
82 (assert-equal "2 run, 0 erred, 1 failed" (summary result))))
84 (def-test-method (test-dynamic-suite self test-case-test :run nil)
85 (assert-equal "3 run, 1 erred, 1 failed"
86 (summary (run (get-suite was-run)))))
89 (textui-test-run (get-suite test-case-test))
93 (or (was-successful (run (get-suite test-case-test)))
94 (error "Failed tests")))