【发布时间】:2015-09-04 03:42:08
【问题描述】:
我正在测试一个模块,其中每个测试类都具有相同的行为:
- 开始交易
- 执行 SQL 查询
- 回滚交易
我决定使用 TestInitialize 和 TestCleanup 分别执行事务的 Begin 和 Rollback。
直截了当的方法是在父类中编写 TestInitialize/TestCleanup,但这不适用于此测试框架。
解决方法是使用部分类。这种方法在我的情况下似乎是可行的,因为我的测试类主要是无状态的。事件不是理想的解决方案,它至少为我节省了一些复制/粘贴操作。
有人知道更好的方法吗?
这是部分类解决方案的示例:
在我的例子中,我分别测试每个模块,在这个例子中,我将使用 Sales 模块:
SalesTest.cs 文件:
[TestClass]
public partial class SalesTest
{
[TestInitialize]
public void Setup()
{
//begin transaction
}
[TestCleanup]
public void Cleanup()
{
//rollback transaction
}
}
SalesTest.Order 文件:
public partial class SalesTest
{
[TestMethod]
public void SaveOrder_OnlyRequiredValuesFilled_SuccessfullySaved()
{
//Run some SQL queries
}
}
【问题讨论】:
标签: c# unit-testing