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
是正常的吗?
非常感谢。
由于您使用的是模拟,最简单的做法是为每个示例创建一个。这样所有的例子都是独立的,可以并发执行。
我正在用 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
是正常的吗?
非常感谢。
由于您使用的是模拟,最简单的做法是为每个示例创建一个。这样所有的例子都是独立的,可以并发执行。