如何在 xUnit 中对 Class 的多个实例进行单元测试
How To Unit Test Multiple Instances Of Class In xUnit
我对单元测试还很陌生。我理解这个概念,但我总是发现自己在执行过程中碰壁。在 xUnit 中,如何测试 class 的多个实例?例如,假设我有一个带有签名的构造函数:
public FileWatcher(string path = "", bool startWatching = true)
我想 运行 针对每个 public 属性 和我正在针对 FileWatcher
的多个实例进行测试的方法的所有单元测试,每个实例都有构造函数传递了不同的参数。这样我就可以 运行 我的所有测试都针对 FileWatcher
的实例,其中没有传入参数,然后是传入参数的实例。我不知道我正在尝试做的事情是否有代码的味道,或者我是否不知道正确的命名法来显示任何结果,但我找不到 任何东西关于这个问题。
我相信,你应该考虑一下你的方法。从签名来看,我认为你的 FileWatcher
should/would/does 在 path
为 null 时、文件存在时、文件不存在时表现不同。
一遍又一遍地测试相同的场景没有多大意义,因为你基本上是 运行 相同的 测试。
您应该尝试找到不同的边缘情况,最好为每个情况创建一个测试。
也就是说,可以在 xUnit 中创建理论,这些是带参数的测试。我建议 xUnit Theory: Working With InlineData, MemberData, ClassData,这对我有帮助。
我对单元测试还很陌生。我理解这个概念,但我总是发现自己在执行过程中碰壁。在 xUnit 中,如何测试 class 的多个实例?例如,假设我有一个带有签名的构造函数:
public FileWatcher(string path = "", bool startWatching = true)
我想 运行 针对每个 public 属性 和我正在针对 FileWatcher
的多个实例进行测试的方法的所有单元测试,每个实例都有构造函数传递了不同的参数。这样我就可以 运行 我的所有测试都针对 FileWatcher
的实例,其中没有传入参数,然后是传入参数的实例。我不知道我正在尝试做的事情是否有代码的味道,或者我是否不知道正确的命名法来显示任何结果,但我找不到 任何东西关于这个问题。
我相信,你应该考虑一下你的方法。从签名来看,我认为你的 FileWatcher
should/would/does 在 path
为 null 时、文件存在时、文件不存在时表现不同。
一遍又一遍地测试相同的场景没有多大意义,因为你基本上是 运行 相同的 测试。
您应该尝试找到不同的边缘情况,最好为每个情况创建一个测试。
也就是说,可以在 xUnit 中创建理论,这些是带参数的测试。我建议 xUnit Theory: Working With InlineData, MemberData, ClassData,这对我有帮助。