Specs2,顺序与否

Specs2, sequential or not

我正在用 Scala 开始一个新项目。我想用 Specs2 测试我的组件。但是我刚刚浪费了一个半小时来解决模拟验证的问题。

我的规格如下:

Creating a page should 
  Verify that the name is not empty
  Verify that the name is unique
  Produce and store the page

我对我的存储库进行了模拟,这样我就可以验证当先决条件失败时,页面不会被存储:

there was no(pages).add(any[Page]) 

但是对于最后一句话,我确认页面已存储。

there was one(pages).add(page)

但是我的规范失败了,因为最后一个测试是在第二个测试之前进行的,因此 there was one(pages).add(...) 所以我必须添加 sequential 关键字。

我是不是做错了什么?我可以为每个示例创建一个模拟,这样就没有副作用了。或者我可以在每个示例之前重置模拟吗?

或者在使用模拟测试时使用 sequential 是正常的吗?

非常感谢。

由于您使用的是模拟,最简单的做法是为每个示例创建一个。这样所有的例子都是独立的,可以并发执行。