public void TransactionTearDown()
{
if (ContextUtil.IsInTransaction)
{
ContextUtil.SetAbort();
}
}
所有的单元测试方法都需要继承与此类。比如:
public class AddressSqlDAOTest : DatabaseFixture
这样,单元测试方法执行完后,会继续执行DatabaseFixture类中的TransactionTearDown()方法。从而会滚之前的数据操作,单元测试方法也就不会影响开发数据库,同样开发数据库也不会影响单元测试方法的执行,从而保证了单元测试与数据库数据的独立。
二、如何CRUD单元测试
1、测试增加方法:判断返回的主键是否>0,如果主键>0 说明单元测试方法成功,否则失败
2、测试查询方法:首先在执行单元测试类中的插入数据方法(不是被测试类中的插入方法,而是在单元测试类中写的插入方法,一定要区分开),然后执行查询方法。
3、测试更新方法:首先在执行单元测试类中的插入数据方法,然后执行更新方法。
4、测试删除方法:首先在执行单元测试类中的插入数据方法,然后执行删除方法。
三、单元测试的命名规范
为了便于后期单元测试方法的维护,建议如下命名单元测试类 和单元测试方法。
单元测试类名:被测试类名称+Test
单元测试方法名:被测试方法名称+Test
四、总结
至此,大家就可以利用Nunit中如何进行事务性单元测试已经完毕,相信大家也已经了解了如何让单元测试独立于数据库数据,从而更高效地进行单元测试,也不影响开发。
文章来源于领测软件测试网 https://www.ltesting.net/