Именование Модульных тестов, который просто вызывает конструктора?

Я пытаюсь следовать соглашению о присвоении имен UnitTests Roy Osherove с шаблоном именования: [MethodName_StateUnderTest_ExpectedBehavior].

После этого шаблона. Как Вы назвали бы тест, вызвав конструктора?

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

5
задан Thomas Jespersen 15 May 2010 в 16:36
поделиться

2 ответа

Constructor_WithoutArguments_Succeeds

12
ответ дан 18 December 2019 в 08:27
поделиться

Я не знаю, как вы бы назвали этот модульный тест, но я настоятельно рекомендую вам избегать его написания, поскольку нет ничего, что могло бы привести к сбою утверждения. Если конструктор завершится успешно, CLR гарантирует вам новый экземпляр, который не будет нулевым.

Теперь, если конструктор вашего объекта вызывает исключение при некоторых обстоятельствах, вы можете назвать его так:

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

Итак, два возможных случая для кода, который вы тестируете:

  1. Вы получаете экземпляр
  2. Вы получаете исключение

Не нужно тестировать первое.

7
ответ дан 18 December 2019 в 08:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: