考虑到这是对我的数据库的集成测试,请使用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)));
        }

最佳答案

是否有第一行Delete_Release_Test_Data(conString)未被安排的特定原因?从this link的《安排行为断言》中:


  每种方法都应将这些功能部分分组,并用空行分隔:
  
  
  安排所有必要的前提条件和输入。
  对被测对象或方法采取行动。
  断言已经发生了预期的结果。
  


插入有效的测试数据是此测试的前提,这意味着应将其放置在“安排”部分下。

注意:您还可以将此测试重命名为Delete_Release_When_Exists,然后还创建测试Delete_Release_When_Doesnt_Exist以验证是否抛出了正确的异常或返回值正确。

10-08 00:56