1

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

1 回答 1

8

Delete_Release_Test_Data(conString)第一行没有安排好有什么具体原因吗?从这个关于安排行为断言的链接:

每个方法都应该对这些功能部分进行分组,用空行分隔:

  1. 安排所有必要的先决条件和输入。
  2. 作用于被测对象或方法。
  3. 断言预期的结果已经发生。

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

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

于 2012-02-27T20:24:44.260 回答