如何在xUnit中单元测试类的多个实例

时间:2018-05-23 03:08:27

标签: c# unit-testing xunit

我对单元测试比较陌生。我理解这个概念,但我发现自己在执行中碰到了墙。如何在xUnit中测试一个类的多个实例?例如,假设我有一个带签名的构造函数:

public FileWatcher(string path = "", bool startWatching = true)

我想为每个公共属性和方法运行我的所有单元测试,我测试多个FileWatcher实例,每个实例都使用不同的参数传递构造函数。这样我可以针对没有传入参数的FileWatcher实例运行我的所有测试,然后传递参数。我不知道我试图做的是什么样的代码味道,或者我不知道正确的术语来发现任何结果,但是我无法找到关于这个主题的任何

1 个答案:

答案 0 :(得分:1)

我相信,你应该考虑一下你的做法。从签名中,我认为FileWatcherpath为空时,当文件存在时,当文件不存在时,{/ 1}}应该/将会有不同的行为。

一遍又一遍地测试同一场景没有多大意义,因为您基本上都在运行相同的测试。

您应该尝试找到不同的边缘情况,最好为每个边缘情况创建一个测试。

也就是说,可以在xUnit中创建Theories,这些是带参数的测试。我建议xUnit Theory: Working With InlineData, MemberData, ClassData,这对我有帮助。