考虑到这是对我的数据库的集成测试,使用“排列法”断言“排列”部分应该包含哪些内容?
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)));
}
答案 0 :(得分:5)
是否有特定原因导致第一行Delete_Release_Test_Data(conString)
未安排?来自安排法案断言的this link:
每个方法都应该对这些功能部分进行分组,用空行分隔:
- 安排所有必要的前提条件和输入。
- 对被测对象或方法采取行动。
- 断言表示已发生预期结果。
醇>
插入有效的测试数据是此测试的前提条件,这意味着它应该放在“编配”部分下。
注意:您还可以将此测试重命名为Delete_Release_When_Exists
,然后创建测试Delete_Release_When_Doesnt_Exist
以验证是否抛出了正确的异常或返回值是否正确。