我想在Pharo中进行 SUnit 测试。改变测试运行方式的正确方法是什么?
例子:
我想为测试引入超时,我运行的每个测试都应该在给定的延迟后中止。
问题:
SUnit 在模型中没有专门的功能TestRunner,可以让我轻松地引入更改。我可以创建一个新的子类TestResult并使用那里的 API ( runCase:, addError:...) 来获得足够的控制。但是,更改结果类以修改测试运行方式的行为感觉很奇怪。
我习惯了SMark,我有专门的跑步者来修改这些东西。
(免责声明:我不知道 SUnit Pharo 使用什么版本,所以具体的 API 可能会有所不同。不过,我希望这会有所帮助。)
子类TestResult化是要走的路,尽管它可能听起来有点奇怪。
自定义新的“SUnit”实例的一般思路是:
TestResult(即#runCase: aTestCase debugged: aBoolean)中进行TestCase(即#performTest)中进行我个人想让 SUnit 尽可能简单,在这里我认为没有理由引入一个新类。为什么?查看 JUnit 最近的变化。:-) 我同意 SUnit 值得更多的文档。
有关如何实现超时、跳过等的示例,请查看 Smalltalk/X 中的 TestReport。