我正在为我们的 C# 项目编写单元测试。在我正在测试的几个类中,我们的方法如下所示:
public ClassWithLotsOfProperties doStuffINeedToTest(AnotherClassWithLotsOfProperties input)
{
//do stuff
}
我计划通过模拟几个AnotherClassWithLotsOfProperties
对象来测试它们,确保我知道ClassWithLotsOfProperties
当第一个对象传入时会期望什么对象,然后验证我得到了我正在寻找的结果。现在,我们的团队确信被测试的类工作正常,所以我正在运行程序,让它进入doStuffINeedToTest()
被调用的状态,并在方法的末尾设置一个断点,这样我就可以写下什么在方法的输入和输出对象的状态中。
这种方法的缺点是AnotherClassWithLotsOfProperties
两者ClassWithLotsOfProperties
都有几十个属性,这意味着从调试器中写下它们的值,然后在单元测试中设置它们的模拟将是乏味的。有没有更快的方法来设置这些单元测试?现在,我正在使用 NUnit 和 Moq。我们的团队想坚持使用 NUnit,但我愿意看看另一个模拟框架。
特别是,我认为很好的一件事是,如果我可以让 Visual Studio 或模拟框架在我运行程序以设置我想要作为测试基础的方法调用时自动为我生成模拟对象。有没有办法做这样的事情?