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

C# 在集成测试中使用Arrange-Act-Assert模式,c#,unit-testing,integration-testing,arrange-act-assert,C#,Unit Testing,Integration Testing,Arrange Act Assert,考虑到这是对我的数据库的集成测试,使用Arrange-Act断言Arrange部分应该包含什么 private void Delete_Release_Test_Data(string conString) { UnitTestHelper.PrepareData(new[] { "ReleaseId" }, new object[] { 100 }); UnitTestHelper.InsertPreparedData(conSt

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

第一行删除\发布\测试\数据分析未安排的具体原因是什么?从一开始,我主张:

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

安排所有必要的先决条件和输入。 作用于被测试的对象或方法。 断言预期结果已经发生。 插入有效的测试数据是此测试的先决条件,这意味着它应该放在排列部分下


注意:您还可以重命名此测试,以便在存在时删除发布,然后在不存在时创建测试删除发布,以验证抛出的异常是否正确或返回值是否正确。

第一行删除发布测试的数据分析未在安排下,是否有特定原因?从一开始,我主张:

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

安排所有必要的先决条件和输入。 作用于被测试的对象或方法。 断言预期结果已经发生。 插入有效的测试数据是此测试的先决条件,这意味着它应该放在排列部分下


注意:您还可以重命名此测试,以便在存在时删除\u Release\u,然后在不存在时创建测试Delete\u Release\u,以验证是否引发了正确的异常或返回值是否正确。

是否有特定的。。。1.有。我们通常在一个带有[setup]属性的setup方法中运行所有的前置条件,该属性在每次测试之前调用。我们没有一个方法的单独测试数据,例外是我发布的那个样本。。。那么我们的方法如何适应AAA模式呢。。。注:。。。2.我的deleteRelease方法不返回任何内容,因为它为什么会失败?它只能从作者身上删除,所以这里没有并发性。好吧,既然AAA专注于单元测试,而您正在进行集成测试,那么您应该更多地将它用作一个粗略的指南,而不是过于关注细节。如果使用[Setup]方法,可以将其放入arrange块,也可以不使用arrange块。此外,我的注释仍然有效。你会问为什么它会失败?我可以说,在某些系统中,预期的行为是由于无效输入而失败,而在您的系统中,预期的行为可能是什么也不做。当然,您的注意/注意是有效的:酷您在Marlon工作的地方工作:PIs有一个特定的。。。1.有。我们通常在一个带有[setup]属性的setup方法中运行所有的前置条件,该属性在每次测试之前调用。我们没有一个方法的单独测试数据,例外是我发布的那个样本。。。那么我们的方法如何适应AAA模式呢。。。注:。。。2.我的deleteRelease方法不返回任何内容,因为它为什么会失败?它只能从作者身上删除,所以这里没有并发性。好吧,既然AAA专注于单元测试,而您正在进行集成测试,那么您应该更多地将它用作一个粗略的指南,而不是过于关注细节。如果使用[Setup]方法,可以将其放入arrange块,也可以不使用arrange块。此外,我的注释仍然有效。你会问为什么它会失败?我可以说,在某些系统中,预期的行为是由于无效输入而失败,而在您的系统中,预期的行为可能是什么也不做。当然,您的注意/注意是有效的:酷您在Marlon工作的地方工作:P