Browse Source

Saner isTestClass implementation.

No `includesBehaviour:`, standard Smalltalk way via polymorphism.
Herbert Vojčík 7 years ago
parent
commit
adc1dc9c2a
2 changed files with 27 additions and 38 deletions
  1. 23 31
      src/SUnit.js
  2. 4 7
      src/SUnit.st

+ 23 - 31
src/SUnit.js

@@ -686,6 +686,29 @@ messageSends: ["=", "name"]
 }),
 $globals.TestCase.klass);
 
+$core.addMethod(
+$core.method({
+selector: "isTestClass",
+protocol: 'testing',
+fn: function (){
+var self=this;
+//>>excludeStart("ctx", pragmas.excludeDebugContexts);
+return $core.withContext(function($ctx1) {
+//>>excludeEnd("ctx");
+return $recv(self._isAbstract())._not();
+//>>excludeStart("ctx", pragmas.excludeDebugContexts);
+}, function($ctx1) {$ctx1.fill(self,"isTestClass",{},$globals.TestCase.klass)});
+//>>excludeEnd("ctx");
+},
+//>>excludeStart("ide", pragmas.excludeIdeData);
+args: [],
+source: "isTestClass\x0a\x09^ self isAbstract not",
+referencedClasses: [],
+//>>excludeEnd("ide");
+messageSends: ["not", "isAbstract"]
+}),
+$globals.TestCase.klass);
+
 $core.addMethod(
 $core.method({
 selector: "lookupHierarchyRoot",
@@ -1744,37 +1767,6 @@ messageSends: ["suite:", "new"]
 }),
 $globals.TestSuiteRunner.klass);
 
-$core.addMethod(
-$core.method({
-selector: "isTestClass",
-protocol: '*SUnit',
-fn: function (){
-var self=this;
-//>>excludeStart("ctx", pragmas.excludeDebugContexts);
-return $core.withContext(function($ctx1) {
-//>>excludeEnd("ctx");
-return $recv(self._includesBehavior_($globals.TestCase))._and_((function(){
-//>>excludeStart("ctx", pragmas.excludeDebugContexts);
-return $core.withContext(function($ctx2) {
-//>>excludeEnd("ctx");
-return $recv(self._isAbstract())._not();
-//>>excludeStart("ctx", pragmas.excludeDebugContexts);
-}, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
-//>>excludeEnd("ctx");
-}));
-//>>excludeStart("ctx", pragmas.excludeDebugContexts);
-}, function($ctx1) {$ctx1.fill(self,"isTestClass",{},$globals.Behavior)});
-//>>excludeEnd("ctx");
-},
-//>>excludeStart("ide", pragmas.excludeIdeData);
-args: [],
-source: "isTestClass\x0a\x09^(self includesBehavior: TestCase) and: [ \x0a\x09\x09\x09self isAbstract not ]",
-referencedClasses: ["TestCase"],
-//>>excludeEnd("ide");
-messageSends: ["and:", "includesBehavior:", "not", "isAbstract"]
-}),
-$globals.Behavior);
-
 $core.addMethod(
 $core.method({
 selector: "isTestClass",

+ 4 - 7
src/SUnit.st

@@ -188,6 +188,10 @@ isAbstract
 	^ self name = 'TestCase'
 !
 
+isTestClass
+	^ self isAbstract not
+!
+
 shouldInheritSelectors
 	^ self ~= self lookupHierarchyRoot
 ! !
@@ -442,13 +446,6 @@ on: aCollection
 	^ super new suite: aCollection
 ! !
 
-!Behavior methodsFor: '*SUnit'!
-
-isTestClass
-	^(self includesBehavior: TestCase) and: [ 
-			self isAbstract not ]
-! !
-
 !BehaviorBody methodsFor: '*SUnit'!
 
 isTestClass