specs2:将常见的Give移动到超类中

时间:2012-09-21 09:45:46

标签: scala specs2

在Specs2中,我在可变规范中使用了ScalaCheck的Given / When / Then样式,并且我有一个常用的Given步骤,它创建了一个ScalaCheck Gen对象,我想把它移到一个具有该步骤的所有测试的公共超类。 (嗯,实际上,进入一个特质,但也许这没有什么区别。)

但是,我的测试有一些相当复杂的设置代码,必须以正确的顺序运行,并且我已经为我的specs2测试代码提供了相当深的类层次结构,以及我迄今为止尝试过的每一个技巧以正确的顺序执行未能保持执行顺序相同。从表面上看,似乎很奇怪,这将是如此困难,但当然我不知道specs2在这种情况下如何实际执行事情,所以我真的只是猜测。

所以我的问题是,如何将Given步骤移动到超类或特征中,而不会以任何显着的方式影响执行顺序。

1 个答案:

答案 0 :(得分:1)

这不是火箭科学 - 它只是在所有设置代码运行后显式调用Given步骤的问题。因此,您可以将Given步骤放在方法中,并在设置代码之后调用该方法。

更复杂的解决方案不一定有效。不要把它放在step