TestAsserter.st
author Claus Gittinger <cg@exept.de>
Thu, 14 Apr 2016 15:00:48 +0200
changeset 649 a69fdedffe06
parent 647 f825e6333193
child 650 20c408a44d5d
permissions -rw-r--r--
#DOCUMENTATION by cg class: TestAsserter added: #skip: changed: #skip
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"{ Package: 'stx:goodies/sunit' }"
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
647
f825e6333193 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 566
diff changeset
     3
"{ NameSpace: Smalltalk }"
f825e6333193 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 566
diff changeset
     4
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
Object subclass:#TestAsserter
376
3fff80e1b3be removed leftover rubbish
Claus Gittinger <cg@exept.de>
parents: 333
diff changeset
     6
	instanceVariableNames:''
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
	classVariableNames:''
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
	poolDictionaries:''
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
	category:'SUnit-Base'
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
!
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
TestAsserter comment:''
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
!
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
!TestAsserter class methodsFor:'asserting'!
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
assert: aBoolean description: aString
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
	"Minimal clone of the instance-side assert protocol so that class-side methods can use it."
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
	aBoolean ifFalse:
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
		[self logFailure: aString.
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
		TestResult failure sunitSignalWith: aString].
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
! !
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
!TestAsserter class methodsFor:'logging'!
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
failureLog
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
	^SUnitNameResolver defaultLogDevice
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
!
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
isLogging
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
	"By default, we're not logging failures. Override in subclasses as desired."
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
	^false
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
!
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
logFailure: aString
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
	self isLogging ifTrue:
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
		[self failureLog cr; nextPutAll: aString; flush].
551
29cd2a10af89 class: TestAsserter
Claus Gittinger <cg@exept.de>
parents: 416
diff changeset
    41
!
29cd2a10af89 class: TestAsserter
Claus Gittinger <cg@exept.de>
parents: 416
diff changeset
    42
29cd2a10af89 class: TestAsserter
Claus Gittinger <cg@exept.de>
parents: 416
diff changeset
    43
logSkipped: aString
29cd2a10af89 class: TestAsserter
Claus Gittinger <cg@exept.de>
parents: 416
diff changeset
    44
        self isLogging ifTrue:
29cd2a10af89 class: TestAsserter
Claus Gittinger <cg@exept.de>
parents: 416
diff changeset
    45
                [self failureLog cr; nextPutAll: aString; flush].
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
! !
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
!TestAsserter methodsFor:'asserting'!
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
assert: aBoolean
566
85fa38b16283 class: TestAsserter
Claus Gittinger <cg@exept.de>
parents: 551
diff changeset
    51
    "fail the testcase if aBoolean is false"
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
    <resource: #skipInDebuggersWalkBack>
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
    aBoolean ifFalse:
566
85fa38b16283 class: TestAsserter
Claus Gittinger <cg@exept.de>
parents: 551
diff changeset
    56
        [self logFailure: 'Assertion failed'.
85fa38b16283 class: TestAsserter
Claus Gittinger <cg@exept.de>
parents: 551
diff changeset
    57
        TestResult failure sunitSignalWith: 'Assertion failed'].
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
    "Modified: / 05-12-2009 / 18:14:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
!
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
assert:aBoolean description:aString
566
85fa38b16283 class: TestAsserter
Claus Gittinger <cg@exept.de>
parents: 551
diff changeset
    63
    "fail the testCase if aBoolean is false, 
85fa38b16283 class: TestAsserter
Claus Gittinger <cg@exept.de>
parents: 551
diff changeset
    64
     and report aString as failure-description."
85fa38b16283 class: TestAsserter
Claus Gittinger <cg@exept.de>
parents: 551
diff changeset
    65
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
    <resource: #skipInDebuggersWalkBack>
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
    ^self assert:aBoolean description:aString resumable: false.
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
    "Modified: / 06-08-2006 / 22:56:27 / cg"
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
    "Modified: / 11-09-2010 / 15:34:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
!
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
assert: aBoolean description: aString resumable: resumableBoolean
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
    <resource: #skipInDebuggersWalkBack>
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
    | exception |
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
    aBoolean ifFalse:
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    79
	[self logFailure: aString.
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
		exception := resumableBoolean
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
			ifTrue: [TestResult resumableFailure]
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
			ifFalse: [TestResult failure].
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
		exception sunitSignalWith: aString].
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
    "Modified: / 05-12-2009 / 18:15:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
!
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
deny: aBoolean
566
85fa38b16283 class: TestAsserter
Claus Gittinger <cg@exept.de>
parents: 551
diff changeset
    89
    "fail the testcase if aBoolean is true"
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    90
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    91
    <resource: #skipInDebuggersWalkBack>
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    92
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
    self assert: aBoolean not.
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    94
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    95
    "Modified: / 05-12-2009 / 18:16:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    96
!
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    97
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    98
deny: aBoolean description: aString
566
85fa38b16283 class: TestAsserter
Claus Gittinger <cg@exept.de>
parents: 551
diff changeset
    99
    "fail the testCase if aBoolean is true, 
85fa38b16283 class: TestAsserter
Claus Gittinger <cg@exept.de>
parents: 551
diff changeset
   100
     and report aString as failure-description."
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   101
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   102
    <resource: #skipInDebuggersWalkBack>
566
85fa38b16283 class: TestAsserter
Claus Gittinger <cg@exept.de>
parents: 551
diff changeset
   103
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   104
    self assert: aBoolean not description: aString.
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   105
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   106
    "Modified: / 05-12-2009 / 18:17:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   107
!
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   108
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   109
deny: aBoolean description: aString resumable: resumableBoolean
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   110
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   111
    <resource: #skipInDebuggersWalkBack>
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   112
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   113
    self assert: aBoolean not description: aString resumable: resumableBoolean.
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   114
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   115
    "Modified: / 05-12-2009 / 18:17:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   116
!
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   117
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   118
should: aBlock raise: anExceptionalEvent
566
85fa38b16283 class: TestAsserter
Claus Gittinger <cg@exept.de>
parents: 551
diff changeset
   119
    "during the execution of aBlock, the anExceptionalEvent should be raised"
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   120
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   121
    <resource: #skipInDebuggersWalkBack>
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   122
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   123
    self assert: (self executeShould: aBlock inScopeOf: anExceptionalEvent).
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   124
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   125
    "Modified: / 05-12-2009 / 18:18:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   126
!
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   127
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   128
should: aBlock raise: anExceptionalEvent description: aString
566
85fa38b16283 class: TestAsserter
Claus Gittinger <cg@exept.de>
parents: 551
diff changeset
   129
    "during the execution of aBlock, the anExceptionalEvent should be raised.
85fa38b16283 class: TestAsserter
Claus Gittinger <cg@exept.de>
parents: 551
diff changeset
   130
     If not, report aString as failure-description."
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   131
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   132
    <resource: #skipInDebuggersWalkBack>
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   133
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   134
    self
566
85fa38b16283 class: TestAsserter
Claus Gittinger <cg@exept.de>
parents: 551
diff changeset
   135
        assert: (self executeShould: aBlock inScopeOf: anExceptionalEvent)
85fa38b16283 class: TestAsserter
Claus Gittinger <cg@exept.de>
parents: 551
diff changeset
   136
        description: aString.
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   137
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   138
    "Modified: / 05-12-2009 / 18:18:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   139
!
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   140
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   141
should: aBlock raise: anExceptionalEvent suchThat: condBlock
566
85fa38b16283 class: TestAsserter
Claus Gittinger <cg@exept.de>
parents: 551
diff changeset
   142
    "during the execution of aBlock, the anExceptionalEvent should be raised,
85fa38b16283 class: TestAsserter
Claus Gittinger <cg@exept.de>
parents: 551
diff changeset
   143
     and condBlock should return true on the exception instance"
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   144
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   145
    <resource: #skipInDebuggersWalkBack>
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   146
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   147
    self assert: (self executeShould: aBlock inScopeOf: anExceptionalEvent suchThat: condBlock).
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   148
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   149
    "Created: / 05-05-2011 / 20:14:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   150
!
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   151
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   152
should: aBlock raise: anExceptionalEvent suchThat: condBlock description: description
566
85fa38b16283 class: TestAsserter
Claus Gittinger <cg@exept.de>
parents: 551
diff changeset
   153
    "during the execution of aBlock, the anExceptionalEvent should be raised,
85fa38b16283 class: TestAsserter
Claus Gittinger <cg@exept.de>
parents: 551
diff changeset
   154
     and condBlock should return true on the exception instance.
85fa38b16283 class: TestAsserter
Claus Gittinger <cg@exept.de>
parents: 551
diff changeset
   155
     If not, report aString as failure-description."
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   156
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   157
    <resource: #skipInDebuggersWalkBack>
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   158
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   159
    self assert: (self executeShould: aBlock inScopeOf: anExceptionalEvent suchThat: condBlock)
566
85fa38b16283 class: TestAsserter
Claus Gittinger <cg@exept.de>
parents: 551
diff changeset
   160
         description: description
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   161
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   162
    "Created: / 05-05-2011 / 20:14:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   163
!
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   164
566
85fa38b16283 class: TestAsserter
Claus Gittinger <cg@exept.de>
parents: 551
diff changeset
   165
should: aBlock raise: anExceptionalEvent whoseDescriptionIncludes: aStringFragment
85fa38b16283 class: TestAsserter
Claus Gittinger <cg@exept.de>
parents: 551
diff changeset
   166
    "during the execution of aBlock, the anExceptionalEvent should be raised,
85fa38b16283 class: TestAsserter
Claus Gittinger <cg@exept.de>
parents: 551
diff changeset
   167
     and aStringFragment should be contained in the exception-instances description."
85fa38b16283 class: TestAsserter
Claus Gittinger <cg@exept.de>
parents: 551
diff changeset
   168
85fa38b16283 class: TestAsserter
Claus Gittinger <cg@exept.de>
parents: 551
diff changeset
   169
    <resource: #skipInDebuggersWalkBack>
85fa38b16283 class: TestAsserter
Claus Gittinger <cg@exept.de>
parents: 551
diff changeset
   170
85fa38b16283 class: TestAsserter
Claus Gittinger <cg@exept.de>
parents: 551
diff changeset
   171
    ^ self should: aBlock 
85fa38b16283 class: TestAsserter
Claus Gittinger <cg@exept.de>
parents: 551
diff changeset
   172
           raise: anExceptionalEvent
85fa38b16283 class: TestAsserter
Claus Gittinger <cg@exept.de>
parents: 551
diff changeset
   173
           suchThat:[:ex | ex description includesString: aStringFragment]
85fa38b16283 class: TestAsserter
Claus Gittinger <cg@exept.de>
parents: 551
diff changeset
   174
!
85fa38b16283 class: TestAsserter
Claus Gittinger <cg@exept.de>
parents: 551
diff changeset
   175
85fa38b16283 class: TestAsserter
Claus Gittinger <cg@exept.de>
parents: 551
diff changeset
   176
should:aBlock raise:anExceptionalEvent whoseDescriptionIncludes:aStringFragment description:aString
85fa38b16283 class: TestAsserter
Claus Gittinger <cg@exept.de>
parents: 551
diff changeset
   177
    "during the execution of aBlock, the anExceptionalEvent should be raised,
85fa38b16283 class: TestAsserter
Claus Gittinger <cg@exept.de>
parents: 551
diff changeset
   178
     and aStringFragment should be contained in the exception-instances description.
85fa38b16283 class: TestAsserter
Claus Gittinger <cg@exept.de>
parents: 551
diff changeset
   179
     If not, report aString as failure-description."
85fa38b16283 class: TestAsserter
Claus Gittinger <cg@exept.de>
parents: 551
diff changeset
   180
85fa38b16283 class: TestAsserter
Claus Gittinger <cg@exept.de>
parents: 551
diff changeset
   181
    <resource: #skipInDebuggersWalkBack>
85fa38b16283 class: TestAsserter
Claus Gittinger <cg@exept.de>
parents: 551
diff changeset
   182
85fa38b16283 class: TestAsserter
Claus Gittinger <cg@exept.de>
parents: 551
diff changeset
   183
    ^ self should: aBlock 
85fa38b16283 class: TestAsserter
Claus Gittinger <cg@exept.de>
parents: 551
diff changeset
   184
           raise: anExceptionalEvent
85fa38b16283 class: TestAsserter
Claus Gittinger <cg@exept.de>
parents: 551
diff changeset
   185
           suchThat:[:ex | ex description includesString: aStringFragment]
85fa38b16283 class: TestAsserter
Claus Gittinger <cg@exept.de>
parents: 551
diff changeset
   186
           description: aString.
85fa38b16283 class: TestAsserter
Claus Gittinger <cg@exept.de>
parents: 551
diff changeset
   187
!
85fa38b16283 class: TestAsserter
Claus Gittinger <cg@exept.de>
parents: 551
diff changeset
   188
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   189
shouldnt: aBlock raise: anExceptionalEvent
566
85fa38b16283 class: TestAsserter
Claus Gittinger <cg@exept.de>
parents: 551
diff changeset
   190
    "during the execution of aBlock, the anExceptionalEvent should NOT be raised"
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   191
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   192
    <resource: #skipInDebuggersWalkBack>
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   193
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   194
    self
566
85fa38b16283 class: TestAsserter
Claus Gittinger <cg@exept.de>
parents: 551
diff changeset
   195
        assert: (self executeShould: aBlock inScopeOf: anExceptionalEvent) not.
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   196
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   197
    "Modified: / 05-12-2009 / 18:18:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   198
!
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   199
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   200
shouldnt: aBlock raise: anExceptionalEvent description: aString
566
85fa38b16283 class: TestAsserter
Claus Gittinger <cg@exept.de>
parents: 551
diff changeset
   201
    "during the execution of aBlock, the anExceptionalEvent should NOT be raised.
85fa38b16283 class: TestAsserter
Claus Gittinger <cg@exept.de>
parents: 551
diff changeset
   202
     If not, report aString as failure-description."
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   203
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   204
    <resource: #skipInDebuggersWalkBack>
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   205
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   206
    self
566
85fa38b16283 class: TestAsserter
Claus Gittinger <cg@exept.de>
parents: 551
diff changeset
   207
        assert: (self executeShould: aBlock inScopeOf: anExceptionalEvent) not
85fa38b16283 class: TestAsserter
Claus Gittinger <cg@exept.de>
parents: 551
diff changeset
   208
        description: aString.
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   209
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   210
    "Modified: / 05-12-2009 / 18:18:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
551
29cd2a10af89 class: TestAsserter
Claus Gittinger <cg@exept.de>
parents: 416
diff changeset
   211
!
29cd2a10af89 class: TestAsserter
Claus Gittinger <cg@exept.de>
parents: 416
diff changeset
   212
647
f825e6333193 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 566
diff changeset
   213
skip
f825e6333193 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 566
diff changeset
   214
    "skip this test"
f825e6333193 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 566
diff changeset
   215
    
649
a69fdedffe06 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 647
diff changeset
   216
    self skipIf:true description:'Unconditionally'.
a69fdedffe06 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 647
diff changeset
   217
!
a69fdedffe06 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 647
diff changeset
   218
a69fdedffe06 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 647
diff changeset
   219
skip:aString
a69fdedffe06 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 647
diff changeset
   220
    "skip this test"
a69fdedffe06 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 647
diff changeset
   221
    
a69fdedffe06 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 647
diff changeset
   222
    self skipIf:true description:aString
647
f825e6333193 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 566
diff changeset
   223
!
f825e6333193 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 566
diff changeset
   224
551
29cd2a10af89 class: TestAsserter
Claus Gittinger <cg@exept.de>
parents: 416
diff changeset
   225
skipIf:aCondition description:aString
647
f825e6333193 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 566
diff changeset
   226
    "skip this test, if some condition is met"
f825e6333193 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 566
diff changeset
   227
    
f825e6333193 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 566
diff changeset
   228
    aCondition value ifTrue: [
f825e6333193 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 566
diff changeset
   229
        self logSkipped: 'Skipped - ',aString.
f825e6333193 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 566
diff changeset
   230
        TestResult skipped sunitSignalWith: aString
f825e6333193 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 566
diff changeset
   231
    ].
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   232
! !
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   233
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   234
!TestAsserter methodsFor:'convenience'!
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   235
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   236
assert: anObject equals: anotherObject
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   237
	self assert: anObject = anotherObject
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   238
		description: anObject printString, ' is not equal to ', anotherObject printString.
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   239
! !
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   240
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   241
!TestAsserter methodsFor:'logging'!
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   242
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   243
logFailure: aString
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   244
	self class logFailure: aString.
551
29cd2a10af89 class: TestAsserter
Claus Gittinger <cg@exept.de>
parents: 416
diff changeset
   245
!
29cd2a10af89 class: TestAsserter
Claus Gittinger <cg@exept.de>
parents: 416
diff changeset
   246
29cd2a10af89 class: TestAsserter
Claus Gittinger <cg@exept.de>
parents: 416
diff changeset
   247
logSkipped: aString
29cd2a10af89 class: TestAsserter
Claus Gittinger <cg@exept.de>
parents: 416
diff changeset
   248
        self class logSkipped: aString.
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   249
! !
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   250
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   251
!TestAsserter methodsFor:'private'!
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   252
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   253
executeShould: execBlock inScopeOf: exceptionalEvent
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   254
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   255
    <resource: #skipInDebuggersWalkBack>
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   256
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   257
    ^ self
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   258
	executeShould: execBlock
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   259
	inScopeOf: exceptionalEvent
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   260
	suchThat: [:ex | true ]
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   261
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   262
    "Modified: / 05-05-2011 / 20:23:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   263
!
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   264
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   265
executeShould: execBlock inScopeOf: exceptionalEvent suchThat: conditionBlock
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   266
	^[execBlock value.
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   267
	false]
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   268
		sunitOn: exceptionalEvent
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   269
		do:
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   270
		    [:ex |
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   271
		    ex sunitExitWith:(conditionBlock value: ex)]
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   272
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   273
    "Created: / 05-05-2011 / 20:08:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   274
! !
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   275
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   276
!TestAsserter class methodsFor:'documentation'!
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   277
286
01b3ae052203 changed: #executionTime
Claus Gittinger <cg@exept.de>
parents: 284
diff changeset
   278
version
647
f825e6333193 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 566
diff changeset
   279
    ^ '$Header$'
286
01b3ae052203 changed: #executionTime
Claus Gittinger <cg@exept.de>
parents: 284
diff changeset
   280
!
01b3ae052203 changed: #executionTime
Claus Gittinger <cg@exept.de>
parents: 284
diff changeset
   281
223
354de0061492 initial checkin
Claus Gittinger <cg@exept.de>
parents: 222
diff changeset
   282
version_CVS
647
f825e6333193 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 566
diff changeset
   283
    ^ '$Header$'
223
354de0061492 initial checkin
Claus Gittinger <cg@exept.de>
parents: 222
diff changeset
   284
!
354de0061492 initial checkin
Claus Gittinger <cg@exept.de>
parents: 222
diff changeset
   285
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   286
version_SVN
647
f825e6333193 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 566
diff changeset
   287
    ^ '$Id$'
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   288
! !
551
29cd2a10af89 class: TestAsserter
Claus Gittinger <cg@exept.de>
parents: 416
diff changeset
   289