我一直在编写一些tSQLt数据库单元测试(通过Red Gate SQL测试)最近调用包含(持久)计算列的表的程序,并注意如果我使用FakeTable SP,我发现计算列没有填充(他们评价为null).计算列是测试的关键,所以我不能只忽略测试中的列,而我宁愿不复制逻辑.
我正在使用tSQLt.AssertEqualsTable SP评估结果,因此我想确保两者中的列值相同.
在实践中,我通过不使用FakeTable来解决这个问题,但是在测试结束时使用(部分)回滚事务语句(根据http://sqlity.net/en/585/how-上的博客文章)to-rollback-in-procedures /)或显式删除测试值.
我确信必须有更好的方法来编写这个测试,并欢迎任何建议.