我有一些Kiwi测试帮助程序代码,对我的大多数规范都很有用。
跨多个规范(即多个文件)共享此代码的好方法是什么? KiwiSpec上的类别可能是一种选择。但是感觉有点偏离,因为我会将代码放在该类别中以使事情有效,而不是因为它实际上属于KiwiSpec。
'shared example' feature of Kiwi(自4.2.0开始)对单个规格/文件中的DRY似乎更好,而不是跨多个规格。
我不能只从我的测试中调用一些外部代码的主要原因是这个外部代码不在测试用例/ Kiwi规范中,所以它的断言要么生成编译错误或警告。
更新
我已经尝试将外部测试帮助程序代码所需的断言功能作为块注入到帮助程序代码中。 (这样做的好处是我的测试帮助程序代码不会被硬编码以使用任何特定的测试框架。)这只是部分成功:对于我期望引发异常的测试用例:
[[theBlock(...) should] raise];
没有提出。我怀疑问题是我在主块中调用了另一个块,它对它有一个加注。
更新2
用户gantaa在https://github.com/kiwi-bdd/Kiwi/issues/138建议了另一种可能的技术,我们创建一个指向测试套件上下文之外的测试套件对象的自变量。