Использование шаблона Arrange Act Assert с интеграционными тестами
Используя Arrange Act Утвердите, что должно быть в разделе "Arrange ", учитывая, что это тест интеграции в моей базе данных?
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 ответ
Решение
Есть ли конкретная причина, почему первая строка Delete_Release_Test_Data(conString)
не в порядке? Из этой ссылки на Arrange Act Assert:
Каждый метод должен группировать эти функциональные разделы, разделенные пустыми строками:
- Организуйте все необходимые предпосылки и входные данные.
- Действуйте на объекте или тестируемом методе.
- Утверждают, что ожидаемые результаты уже достигнуты.
Вставка действительных тестовых данных является предварительным условием этого теста, который означает, что он должен быть помещен в раздел Arrange.
Примечание. Вы также можете переименовать этот тест в Delete_Release_When_Exists
а затем также создать тест Delete_Release_When_Doesnt_Exist
чтобы убедиться, что выброшено правильное исключение или возвращаемое значение верное.