c# - 如何在 xUnit 中对多个类实例进行单元测试
问题描述
我对单元测试相当陌生。我理解这个概念,但我总是发现自己在执行过程中遇到了困难。如何在 xUnit 中测试一个类的多个实例?例如,假设我有一个带有签名的构造函数:
public FileWatcher(string path = "", bool startWatching = true)
我想针对我正在测试的每个公共属性和方法运行我的所有单元测试,每个公共属性和方法FileWatcher
的构造函数都传递了不同的参数。这样,我可以针对FileWatcher
没有传入参数的实例运行所有测试,然后再针对传入参数的实例运行所有测试。我不知道我正在尝试做的事情是否有代码气味,或者我是否不知道正确的命名法来显示任何结果,但我在这个主题上找不到任何东西。
解决方案
我相信,你应该考虑你的方法。从签名来看,我认为当为空、文件存在、文件不存在时,您的FileWatcher
应该/将/确实表现不同。path
一遍又一遍地测试相同的场景没有多大意义,因为您基本上是在运行相同的测试。
您应该尝试找到不同的边缘情况,并理想地为每种情况创建一个测试。
也就是说,可以在 xUnit 中创建理论,这些是带有参数的测试。我建议xUnit Theory: Working With InlineData, MemberData, ClassData,这对我有帮助。
推荐阅读
- javascript - 在选择选项中更改字符串
- entity-framework - .Net Core EF 迁移成功,但我找不到数据库
- r - 更改闪亮应用的直方图颜色
- postgresql - 当我已经遵循格式时,为什么我不能删除 Postgresql-Pgadmin 中的一行?
- installation - 在 laravel 5.4 中安装 guzzle
- sql - 为 SQL Server 中的列中的每个值计算冗余
- python - 由 Pyinstaller 创建的 .exe 在执行乘法矩阵时关闭
- python-3.x - 我在 python 密码学中不断收到 Invalid Token 错误(cryptography.fernet.InvalidToken)
- python - Scrapy 中意外的速度波动与节流有何关系?
- c - c中的指针值