SUnitTest.st
changeset 0 9365d5753f11
child 6 78bb1397e43d
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/SUnitTest.st	Wed Oct 25 17:51:59 2000 +0200
@@ -0,0 +1,143 @@
+'From Smalltalk/X, Version:4.1.1 on 24-oct-2000 at 08:11:03 pm'                 !
+
+"{ Package: 'stx:goodies/sunit' }"
+
+TestCase subclass:#SUnitTest
+	instanceVariableNames:'hasRun hasSetup hasRanOnce'
+	classVariableNames:''
+	poolDictionaries:''
+	category:'SUnitTests'
+!
+
+!SUnitTest methodsFor:'Accessing'!
+
+hasRun
+	^hasRun!
+
+hasSetup
+	^hasSetup! !
+
+!SUnitTest methodsFor:'Private'!
+
+error
+	3 zork
+
+    "Modified: / 21.6.2000 / 10:22:18 / Sames"
+!
+
+fail
+	self assert: false!
+
+noop!
+
+setRun
+	hasRun := true! !
+
+!SUnitTest methodsFor:'Running'!
+
+setUp
+	hasSetup := true! !
+
+!SUnitTest methodsFor:'Testing'!
+
+testAssert
+	self assert: true.
+	self deny: false!
+
+testDebugUI
+	"This should break"
+	3 zork
+
+    "Modified: / 21.6.2000 / 10:22:50 / Sames"
+!
+
+testDefects
+	| result suite error failure |
+	suite := TestSuite new.
+	suite addTest: (error := self class selector: #error).
+	suite addTest: (failure := self class selector: #fail).
+	result := suite run.
+	self assert: result defects asArray = (Array with: error with: failure)
+
+    "Modified: / 21.6.2000 / 10:23:04 / Sames"
+!
+
+testDialectLocalizedException
+	self should: [TestResult signalFailureWith: 'Foo'] raise: TestResult failure.
+	self should: [TestResult signalErrorWith: 'Foo'] raise: TestResult error.
+	self shouldnt: [TestResult signalErrorWith: 'Foo'] raise: TestResult failure.
+
+    "Modified: / 21.6.2000 / 10:23:20 / Sames"
+!
+
+testError
+	| case result |
+	case := self class selector: #error.
+	result := case run.
+	self assert: result correctCount = 0.
+	self assert: result failureCount = 0.
+	self assert: result runCount = 1.
+	self assert: result errorCount = 1!
+
+testException
+	self should: [self error: 'foo'] raise: TestResult error
+
+    "Modified: / 21.6.2000 / 10:23:39 / Sames"
+!
+
+testFail
+	| case result |
+	case := self class selector: #fail.
+	result := case run.
+	self assert: result correctCount = 0.
+	self assert: result failureCount = 1.
+	self assert: result runCount = 1!
+
+testFailureDebugUI
+	"This should fail !!"
+	self fail!
+
+testIsNotRerunOnDebug
+	| case |
+	case := self class selector: #testRanOnlyOnce.
+	case run.
+	case debug!
+
+testRan
+	| case |
+	case := self class selector: #setRun.
+	case run.
+	self assert: case hasSetup.
+	self assert: case hasRun!
+
+testRanOnlyOnce
+	self assert: hasRanOnce ~= true.
+	hasRanOnce := true.!
+
+testResult
+	| case result |
+	case := self class selector: #noop.
+	result := case run.
+	self assert: result runCount = 1.
+	self assert: result correctCount = 1!
+
+testRunning
+	(SUnitDelay forSeconds: 2) wait
+
+    "Modified: / 21.6.2000 / 10:24:41 / Sames"
+!
+
+testShould
+	self should: [true].
+	self shouldnt: [false]!
+
+testSuite
+	| suite result |
+	suite := TestSuite new.
+	suite addTest: (self class selector: #noop).
+	suite addTest: (self class selector: #fail).
+	result := suite run.
+	self assert: result runCount = 2.
+	self assert: result correctCount = 1.
+	self assert: result failureCount = 1! !
+