TestCase.st
changeset 87 24e88e7f5d88
parent 82 e0e67a37e1ec
child 90 35bbf3487eb1
equal deleted inserted replaced
86:dd19fac3128b 87:24e88e7f5d88
     5 	classVariableNames:''
     5 	classVariableNames:''
     6 	poolDictionaries:''
     6 	poolDictionaries:''
     7 	category:'SUnit-Base'
     7 	category:'SUnit-Base'
     8 !
     8 !
     9 
     9 
    10 TestCase class instanceVariableNames:'lastTestrunResultOrNil'
    10 TestCase class instanceVariableNames:'lastTestRunResultOrNil lastTestRunsFailedTests'
    11 
    11 
    12 "
    12 "
    13  No other class instance variables are inherited by this class.
    13  No other class instance variables are inherited by this class.
    14 "
    14 "
    15 !
    15 !
    62 allTestSelectors
    62 allTestSelectors
    63         ^self sunitAllSelectors select: [:each | 'test*' match: each]
    63         ^self sunitAllSelectors select: [:each | 'test*' match: each]
    64 !
    64 !
    65 
    65 
    66 forgetLastTestRunResult
    66 forgetLastTestRunResult
    67     lastTestrunResultOrNil ~~ nil ifTrue:[
    67     lastTestRunResultOrNil ~~ nil ifTrue:[
    68         lastTestrunResultOrNil := nil.
    68         lastTestRunResultOrNil := nil.
    69         Smalltalk changed:#lastTestRunResult with:self.
    69         Smalltalk changed:#lastTestRunResult with:self.
    70         self changed:#lastTestRunResult.
    70         self changed:#lastTestRunResult.
    71     ]
    71     ]
    72 !
    72 !
    73 
    73 
    74 lastTestrunResultOrNil
    74 lastTestRunResultOrNil
    75     ^ lastTestrunResultOrNil
    75     ^ lastTestRunResultOrNil
       
    76 !
       
    77 
       
    78 rememberFailedTest:selector
       
    79     lastTestRunsFailedTests isNil ifTrue:[
       
    80         lastTestRunsFailedTests := Set new.
       
    81     ].
       
    82     lastTestRunsFailedTests add:selector.
       
    83     self rememberFailedTestRun
    76 !
    84 !
    77 
    85 
    78 rememberFailedTestRun
    86 rememberFailedTestRun
    79     lastTestrunResultOrNil ~~ false ifTrue:[
    87     lastTestRunResultOrNil ~~ false ifTrue:[
    80         lastTestrunResultOrNil := false.
    88         lastTestRunResultOrNil := false.
    81         Smalltalk changed:#lastTestRunResult with:self.
    89         Smalltalk changed:#lastTestRunResult with:self.
    82         self changed:#lastTestRunResult.
    90         self changed:#lastTestRunResult.
    83     ]
    91     ]
    84 !
    92 !
    85 
    93 
       
    94 rememberFailedTestRunWithResult:result
       
    95     self rememberFailedTestRun.
       
    96     (result failures , result errors) do:[:eachFailedTest |
       
    97         |sel|
       
    98 
       
    99         sel := eachFailedTest selector.
       
   100         self rememberFailedTest:sel.
       
   101     ].
       
   102 !
       
   103 
       
   104 rememberPassedTest:selector
       
   105     lastTestRunsFailedTests notNil ifTrue:[
       
   106         lastTestRunsFailedTests remove:selector ifAbsent:nil.
       
   107         lastTestRunsFailedTests isEmpty ifTrue:[
       
   108             lastTestRunsFailedTests := nil
       
   109         ]
       
   110     ].
       
   111 !
       
   112 
    86 rememberPassedTestRun
   113 rememberPassedTestRun
    87     lastTestrunResultOrNil ~~ true ifTrue:[
   114     lastTestRunResultOrNil ~~ true ifTrue:[
    88         lastTestrunResultOrNil := true.
   115         lastTestRunResultOrNil := true.
       
   116         lastTestRunsFailedTests := nil.
    89         Smalltalk changed:#lastTestRunResult with:self.
   117         Smalltalk changed:#lastTestRunResult with:self.
    90         self changed:#lastTestRunResult.
   118         self changed:#lastTestRunResult.
    91     ]
   119     ]
    92 !
   120 !
    93 
   121 
    94 resources
   122 resources
    95 	^#()
   123 	^#()
       
   124 !
       
   125 
       
   126 testSelectorFailed:selector
       
   127     ^ lastTestRunsFailedTests notNil and:[lastTestRunsFailedTests includes:selector]
    96 !
   128 !
    97 
   129 
    98 testSelectors
   130 testSelectors
    99         ^self sunitSelectors select: [:each | 'test*' match: each]
   131         ^self sunitSelectors select: [:each | 'test*' match: each]
   100 ! !
   132 ! !
   145 	"Override to true if a TestCase subclass is Abstract and should not have
   177 	"Override to true if a TestCase subclass is Abstract and should not have
   146 	TestCase instances built from it"
   178 	TestCase instances built from it"
   147 	^self name = #TestCase.
   179 	^self name = #TestCase.
   148 !
   180 !
   149 
   181 
       
   182 runTests
       
   183     |result|
       
   184 
       
   185     result := self suite run.
       
   186 
       
   187     result hasPassed ifTrue:[
       
   188         self rememberPassedTestRun
       
   189     ] ifFalse:[
       
   190         self rememberFailedTestRunWithResult:result
       
   191     ].
       
   192 !
       
   193 
   150 shouldInheritSelectors
   194 shouldInheritSelectors
   151 	"answer true to inherit selectors from superclasses"
   195 	"answer true to inherit selectors from superclasses"
   152 
   196 
   153 	^true
   197 	^true
   154 ! !
   198 ! !
   372 ! !
   416 ! !
   373 
   417 
   374 !TestCase class methodsFor:'documentation'!
   418 !TestCase class methodsFor:'documentation'!
   375 
   419 
   376 version
   420 version
   377     ^ '$Header: /cvs/stx/stx/goodies/sunit/TestCase.st,v 1.28 2002-11-04 21:29:56 cg Exp $'
   421     ^ '$Header: /cvs/stx/stx/goodies/sunit/TestCase.st,v 1.29 2002-11-11 09:50:11 cg Exp $'
   378 ! !
   422 ! !
   379 
   423 
   380 TestCase initialize!
   424 TestCase initialize!