gpt4 book ai didi

unit-testing - 我们如何命名要检查多个条件的测试方法?

转载 作者:行者123 更新时间:2023-12-04 04:40:23 25 4
gpt4 key购买 nike

在命名测试方法时,我遵循 Roy Osherove 的《单元测试艺术》一书中指定的技术 - MethodName_Scenario_Expectation。它非常适合我的“单元”测试。但是,对于我在“ Controller ”或“协调器”类中编写的测试,不一定有我想要测试的方法。

对于这些测试,我生成了构成一个场景的多个条件,然后我验证了预期。例如,我可以在不同的实例上设置一些属性,生成一个事件,然后验证我对 Controller /协调器的期望是否得到满足。现在,我的 Controller 使用私有(private)事件处理程序处理事件。这里我的场景是,我设置了一些属性,比如 3

condition1,condition2 and condition3

另外,我的场景包括

an event is raised

我没有方法名称,因为我的事件处理程序是私有(private)的。如何命名这样的测试方法?

最佳答案

在这种情况下,我会使用多个测试和不同的命名约定:

  • 将测试类命名为 ClassName_Scenario(这样您就可以为同一类提供多个测试类)
  • 将测试方法命名为 Expectation1、Expectation2、Expectation3...

另外,不是在每个测试方法中初始化上下文,而是在 [SetUp] 方法中初始化

所以你会有这样的东西:

[TestFixture]
public class ClassName_WhenScenarioX
{
[SetUp]
void InitContextForScenarioX()
{
}

[Test]
void ShouldDoY()
{
Assert.That(...)
}

[Test]
void ShouldRaiseEventZ()
{
Assert.That(...)
}
}

请注意,这仅在断言的执行顺序不重要时才有效(每个测试都是独立的,即使它们都依赖于相同的初始上下文)

关于unit-testing - 我们如何命名要检查多个条件的测试方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3011107/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com