Arrange, Act, Assert 模式中的 Arrange 和 Act 有什么区别?
What's the difference between Arrange and Act in the Arrange, Act, Assert pattern?
我不太明白单元测试中模式的排列部分和行为部分之间的区别。 Arrange ONLY 是否意味着对象的创建?为什么我们首先要将 Arrange 与 Act 部分分开,以及决定某物是否属于 Act 而不是 Arrange 部分的标准是什么?对我来说似乎一切都属于 Arrange 部分,因为我们 "arrange the test" 用于断言,不是吗?
单元测试测试程序中的单个 "Act",通常是对对象实例的单个方法调用。 Arrange, Act, Assert 将单元测试组织为三个部分:Act 之前、期间和之后。
Arrange 部分包括但不包括感兴趣的方法调用的所有内容。在 Arrange 部分,我们设置我们希望世界(我们调用方法的对象,它与之交互的其他对象等)在我们调用方法时所处的状态。
Act是我们正在测试的方法的调用。
并且(完整地说),断言是测试的其余部分,我们断言该法案对我们预期的世界产生了影响。
所以我们不"arrange the test for the assertion",我们为法案安排世界。在 Arrange 部分,我们做一些我们已经知道其效果的事情。 Arrange 部分调用的每个方法都应该在别处进行单元测试。在法案中,我们做了一些我们还不知道其效果的事情;这就是测试的实际内容。 (在测试驱动开发中,我们可能还没有编写方法,或者添加到它的实现中以通过这个特定的测试。)
我不太明白单元测试中模式的排列部分和行为部分之间的区别。 Arrange ONLY 是否意味着对象的创建?为什么我们首先要将 Arrange 与 Act 部分分开,以及决定某物是否属于 Act 而不是 Arrange 部分的标准是什么?对我来说似乎一切都属于 Arrange 部分,因为我们 "arrange the test" 用于断言,不是吗?
单元测试测试程序中的单个 "Act",通常是对对象实例的单个方法调用。 Arrange, Act, Assert 将单元测试组织为三个部分:Act 之前、期间和之后。
Arrange 部分包括但不包括感兴趣的方法调用的所有内容。在 Arrange 部分,我们设置我们希望世界(我们调用方法的对象,它与之交互的其他对象等)在我们调用方法时所处的状态。
Act是我们正在测试的方法的调用。
并且(完整地说),断言是测试的其余部分,我们断言该法案对我们预期的世界产生了影响。
所以我们不"arrange the test for the assertion",我们为法案安排世界。在 Arrange 部分,我们做一些我们已经知道其效果的事情。 Arrange 部分调用的每个方法都应该在别处进行单元测试。在法案中,我们做了一些我们还不知道其效果的事情;这就是测试的实际内容。 (在测试驱动开发中,我们可能还没有编写方法,或者添加到它的实现中以通过这个特定的测试。)