如何在SUnit中测试跑步者?

cam*_*uni 7 unit-testing smalltalk pharo

我想在Pharo中测试SUnit测试.改变测试运行方式的正确方法是什么?

例:

我想在测试中引入超时,我运行的每个测试都应该在给定的延迟后中止.

问题:

SUnit没有专门TestRunner的模型,可以让我轻松地介绍更改.我可以创建一个新的子类TestResult并在那里使用API​​(runCase:,addError:...)来获得足够的控制.但是,更改结果类以修改测试运行方式的行为会感到奇怪.

我习惯了SMark,我有一个专门的跑步者来修改这些东西.

J.V*_*.V. 7

(免责声明:我不知道什么版本的SUnit Pharo使用,所以具体的API可能会有所不同.不过,我希望这有点帮助.)

TestResult虽然它可能听起来有点奇怪,但是子类化是要走的路.

定制新的"SUnit"实例的一般想法是:

  • 针对特定于运行的自定义,在TestResult(即#runCase: aTestCase debugged: aBoolean)中执行
  • 对于特定于测试用例的定制,请在TestCase(即#performTest)中进行

我个人希望尽可能简单地保持SUnit,在这里我没有理由引入新课程.为什么?查看JUnit中的最新更改.:-)我同意SUnit值得更多文档.

有关如何实现超时,跳过等的示例,请查看 Smalltalk/X中的TestReport.