在集成测试中使用Arrange-Act Assert模式

本文关键字:Arrange-Act Assert 模式 集成测试 | 更新日期: 2023-09-27 18:26:01

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

在集成测试中使用Arrange-Act Assert模式

第一行Delete_Release_Test_Data(conString)没有被安排的具体原因是什么?来自Arrange-Act Assert上的此链接:

每种方法都应将这些功能部分分组,用空行分隔:

  1. 安排所有必要的前提条件和输入
  2. 对测试对象或方法执行
  3. 断言已出现预期结果

插入有效的测试数据是此测试的先决条件,这意味着它应该放在"排列"部分下。

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