gpt4 book ai didi

c# - NUnit:在单个测试中运行多个断言

转载 作者:行者123 更新时间:2023-12-03 08:29:21 24 4
gpt4 key购买 nike

我被要求编写一个测试应用程序,该应用程序需要在数据库中的多行上测试一个新的存储过程,从本质上讲,我想执行以下操作:

[Test]
public void TestSelect()
{
foreach(id in ids)
{
DataTable old = Database.call("old_stored_proc",id);
DataTable new_ = Database.call("new_stored_proc",id);

Assert.AreEqual(old.Rows[0]["column"],ne_.Rows[0]["column"]);
}
}
当我运行此测试时,如果一行与另一行不匹配,则整个测试将失败;否则,整个测试将失败。相反,我想计算断言的传递次数和失败的次数。有没有办法用NUnit做到这一点?
我意识到NUnit可能会过大,如果没有它,这是一个简单的任务……我只是想学习它。 ;)

最佳答案

1)如果ID不变且在测试运行时未查找,请为每个ID创建一个单独的单元测试夹具。这样,您将知道哪些ID实际上是失败的。有关数据驱动测试的问题,请参见此处:
http://googletesting.blogspot.com/2008/09/tott-data-driven-traps.html

2)如果您需要动态查找ID,从而无法为每个ID创建固定装置,请使用akmad的建议进行一次更改。保留ID值不相等的列表,并将该列表添加到错误消息中。诊断仅说明错误数量的失败测试将非常困难,因为您将不知道是什么ID导致了错误。

3)我不知道在NUnit中将有多么困难,但是在PyUnit中,当我们需要对动态生成的数据运行测试时,我们会动态创建测试装置并将其附加到TestCase类,从而导致失败对每个不合格的数据进行测试。虽然我认为如果没有python的动态功能,这将更加困难。

关于c# - NUnit:在单个测试中运行多个断言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/167567/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com