如何在SUnit中测试跑步者?

时间:2013-05-01 09:29:00

标签: unit-testing smalltalk pharo

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

实施例

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

问题:

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

我已经习惯了SMark,我有一位专门的跑步者来修改这些东西。

1 个答案:

答案 0 :(得分:7)

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

子类化TestResult是可行的方法,即使它听起来有点奇怪。

自定义新“SUnit”实例的一般想法是:

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

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

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