在命名测试方法时,我遵循Roy Osherove的The Art Of Unit Testing书中指定的技术 - MethodName_Scenario_Expectation.它非常适合我的"单位"测试.但是,对于我在'controller'或'coordinator'类中编写的测试,我不一定要测试一种方法.
对于这些测试,我生成了构成一个场景的多个条件,然后我验证了期望.例如,我可以在不同的实例上设置一些属性,生成一个事件,然后验证我对控制器/协调器的期望是否得到满足.现在,我的控制器使用私有事件处理程序处理事件.在这里我的场景是,我设置了一些属性,比如3
condition1,condition2和condition3
此外,我的方案包括
提出了一个事件
我没有方法名称,因为我的事件处理程序是私有的.我如何命名这样的测试方法?
在这种情况下,我会使用几个测试和不同的命名约定:
此外,它不是在每个测试方法中初始化上下文,而是在[SetUp]方法中初始化
所以你会有这样的事情:
[TestFixture]
public class ClassName_WhenScenarioX
{
[SetUp]
void InitContextForScenarioX()
{
}
[Test]
void ShouldDoY()
{
Assert.That(...)
}
[Test]
void ShouldRaiseEventZ()
{
Assert.That(...)
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,这仅在断言的执行顺序不重要时才起作用(每个测试都是独立的,即使它们都依赖于相同的初始上下文)
| 归档时间: |
|
| 查看次数: |
259 次 |
| 最近记录: |