Использование шаблона Arrange Act Assert с интеграционными тестами - PullRequest
1 голос
/ 27 февраля 2012

Используя 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 Ответ

5 голосов
/ 28 февраля 2012

Есть ли конкретная причина, по которой первая строка Delete_Release_Test_Data(conString) не организована?Начиная с этой ссылки об Arrange Act. Assert:

Каждый метод должен группировать эти функциональные секции, разделенные пустыми строками:

  1. Arrange все необходимые предварительные условия и входные данные.
  2. Действовать для тестируемого объекта или метода.
  3. Утверждать , что ожидаемые результаты были достигнуты.

Вставка действительных тестовых данных является предварительным условием этого теста, что означает, что они должны быть помещены в раздел Arrange.

Примечание : Вы можететакже переименуйте этот тест в Delete_Release_When_Exists, а затем создайте тест Delete_Release_When_Doesnt_Exist, чтобы убедиться, что выброшено правильное исключение или верное значение.

...