命名单元测试只调用构造函数?

时间:2010-05-15 16:36:05

标签: unit-testing naming

我正在尝试使用命名模板跟踪Roy Osherove's UnitTests naming convention:[MethodName_StateUnderTest_ExpectedBehavior]。

遵循这种模式。你如何命名一个调用构造函数的测试?

[Test]
public void ????()
{
    var product = new Product();
    Assert.That(product, Is.Not.Null);
}

2 个答案:

答案 0 :(得分:12)

Constructor_WithoutArguments_Succeeds

答案 1 :(得分:7)

我不知道你怎么称呼这个单元测试,但我强烈建议你不要写它,因为地球上什么都没有让断言失败。如果构造函数成功,CLR会保证一个不为null的新实例。

现在,如果对象的构造函数在某些情况下抛出异常,您可以这样命名:

[TestMethod]
[ExpectedException(typeof(ArgumentNullException))]
public void Product_Constructor_ShouldThrowIfNullArgumentSupplied()
{
    new Product(null);
}

您正在测试的代码有两种可能的情况:

  1. 你得到一个实例
  2. 你得到例外
  3. 无需测试第一个。