2

我真的不明白单元测试中模式的排列部分和行为部分之间的区别。排列是否仅意味着对象的创建?为什么我们首先要将 Arrange 与 Act 部分分开,以及决定某物属于 Act 而不是 Arrange 部分的标准是什么?对我来说,似乎一切都属于安排部分,因为我们为断言“安排测试”,不是吗?

4

1 回答 1

4

单元测试测试程序中的单个“动作”,通常是对对象实例的单个方法调用。Arrange, Act, Assert 将单元测试组织成三个部分:执行前、执行中和执行后。

  • Arrange 部分是所有内容,但不包括感兴趣的方法调用。在 Arrange 部分,我们设置了我们希望世界(我们正在调用该方法的对象、与之交互的其他对象等)在调用该方法时所处的状态。

  • Act 是我们正在测试的方法的调用。

  • 并且(要完整),断言是测试的其余部分,我们断言该法案对我们预期的世界产生了影响。

所以我们不“为断言安排测试”,我们为行为安排世界。在安排部分,我们做一些我们已经知道效果的事情。在 Arrange 部分调用的每个方法都应该在其他地方进行单元测试。在法案中,我们做了一些我们还不知道效果的事情;这就是测试的实际内容。(在测试驱动的开发中,我们可能还没有编写方法,或者添加到它的实现中以通过这个特定的测试。)

于 2015-08-08T14:31:40.040 回答