在我们的单元测试中,我有一个存根对象,它在内存中创建一组数据,以便在单元测试期间使用,以便不使用实时数据库。
我有单元测试,它使用测试中的查询和测试中提供给查询的值来检查从该集返回的行数。我的第一个问题是,因为我们正在使用MSTest并且它不支持参数化测试,所以我们对每组不同的值进行了一次测试,最终得到了许多测试,只是提供给一个例程的值不同。在政治上使用不同的测试框架可能很困难。
同样处理数据有点笨拙,因为它是通过代码将实体添加到集合中创建的,因此很难轻易查看集合中的数据,以及如果我们决定在将来向此集合添加记录,我们需要更新应该在测试中返回的记录数,以便我们的测试非常依赖于这些数据。似乎没有办法自动化这个。是这样的吗?
答案 0 :(得分:2)
答案 1 :(得分:0)
了解Visual Studio 2010终极版如何为数据库测试执行此操作(您可以下载完全配置的VPC)。
一个选项是在测试中添加“context”,因此在初始化测试时,将使用测试所需的参数初始化上下文。您可以通过测试方法中的代码访问参数,或动态地将其分配给要测试的代码(可能不是最佳选项)。
您还可以添加测试应符合的预期结果或更好的条件。这些条件可以从某种数据源(例如数据库)初始化并作为数据集添加。创建一个方法来评估测试方法的条件。
考虑构建特定的类来处理不同的上下文设置或条件,并创建一个测试类可以继承的基本测试类(添加功能)。