(module test-test mzscheme (require "test.ss") (provide test-tests) (define successful-suite (make-test-suite "Example A" (make-test-case "Example 1" #t) (make-test-case "Example 2" #t) (make-test-case "Example 3" #t))) (define test-tests (make-test-suite "Test tests" (make-test-case "Empty test" #t) (make-test-case "Test teardown action" (with-output-to-file "test.dat" (lambda () (display "hello!"))) (run-test (make-test-case "dummy" teardown (delete-file "test.dat"))) (assert-true (not (file-exists? "test.dat")))) (make-test-case "Test setup and teardown action" (assert-true (file-exists? "test.dat")) setup (with-output-to-file "test.dat" (lambda () (display "hello"))) teardown (delete-file "test.dat")) (make-test-case "Test setup and teardown on test suite" (let ((foo 1)) (assert-equal? foo 1) (make-test-suite 'setup (set! foo 2) (make-test-case "Test foo" (assert-equal? foo 2)) 'teardown (set! foo 3)) (assert-equal? foo 3))) (make-test-case "Test simple foldts" (assert-equal? '(S (C C C)) (foldts (lambda (name setup teardown seed) seed) (lambda (name setup teardown seed kid-seed) (list 'S kid-seed)) (lambda (name action setup teardown seed) (cons 'C seed)) (list) successful-suite))) (make-test-case "Test fold-test-results" (fold-test-results (lambda (name seed) (assert-equal? name "Example A")) (lambda (result seed) (assert-true (test-success? result))) (list) successful-suite)) (make-test-case "Test run-test" (let ((result (run-test successful-suite))) (assert = (length result) 3) (assert-true (test-success? (car result))) (assert-true (test-success? (cadr result))) (assert-true (test-success? (caddr result))))) )) )