首页 > 解决方案 > 如何在 xUnit 中对多个类实例进行单元测试

问题描述

我对单元测试相当陌生。我理解这个概念,但我总是发现自己在执行过程中遇到了困难。如何在 xUnit 中测试一个类的多个实例?例如,假设我有一个带有签名的构造函数:

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

我想针对我正在测试的每个公共属性和方法运行我的所有单元测试,每个公共属性和方法FileWatcher的构造函数都传递了不同的参数。这样,我可以针对FileWatcher没有传入参数的实例运行所有测试,然后再针对传入参数的实例运行所有测试。我不知道我正在尝试做的事情是否有代码气味,或者我是否不知道正确的命名法来显示任何结果,但我在这个主题上找不到任何东西。

标签: c#unit-testingxunit

解决方案


我相信,你应该考虑你的方法。从签名来看,我认为当为空、文件存在、文件不存在时,您的FileWatcher应该/将/确实表现不同。path

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

您应该尝试找到不同的边缘情况,并理想地为每种情况创建一个测试。

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


推荐阅读