7

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

例子:

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

问题:

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

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

4

1 回答 1

7

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

子类TestResult化是要走的路,尽管它可能听起来有点奇怪。

自定义新的“SUnit”实例的一般思路是:

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

我个人想让 SUnit 尽可能简单,在这里我认为没有理由引入一个新类。为什么?查看 JUnit 最近的变化。:-) 我同意 SUnit 值得更多的文档。

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

于 2013-05-01T09:55:02.747 回答