Использование закона Arrange Assert, что должно быть в разделе «Упорядочить», учитывая, что это тест интеграции в моей базе данных?Использование шаблона Assert Act Assert с интеграционными испытаниями
private void Delete_Release_Test_Data(string conString)
{
UnitTestHelper.PrepareData(new[] { "ReleaseId" }, new object[] { 100 });
UnitTestHelper.InsertPreparedData(conString, RELEASE_TABLE);
}
[Test]
public void Delete_Release(string conString)
{
Delete_Release_Test_Data(conString);
// ARRANGE
// What should I put here ???
// ACT
IReleaseDataProvider provider = new ReleaseDataProvider();
provider.DeleteRelease(100);
// ASSERT
Assert.IsTrue(UnitTestHelper.HasNoData(conString, string.Format("SELECT * FROM {0}", RELEASE_TABLE)));
}
«Есть конкретные ...» 1.) Да, есть. Обычно мы запускаем все наши предварительные условия в методе настройки с атрибутом [Setup], который вызывается перед каждым тестом. У нас нет отдельных тестовых данных для метода (исключение в том, что я опубликовал образец ...) Итак, как наш подход подходит к шаблону AAA? «... Примечание: ...» 2.) Мой метод deleteRelease ничего не возвращает, потому что, почему он не работает? Он может быть удален только от самого автора, поэтому здесь нет параллелизма. – Pascal
Ну, так как AAA сосредоточен на модульных тестах, и вы проводите интеграционный тест, вы должны использовать его скорее как приблизительное руководство и не слишком зацикливаться на деталях. Либо поставить его в блок расположения или просто не использовать, если вы используете метод [Setup], должно быть хорошо. – Lester
Кроме того, мое примечание остается в силе. «Ты спрашиваешь, почему это должно терпеть неудачу?» и я могу утверждать, что в некоторых системах ожидаемое поведение происходит с ошибкой при недопустимом вводе, в то время как в вашей системе ожидаемое поведение может состоять в том, чтобы ничего не делать. – Lester