【问题标题】:How To Unit Test Multiple Instances Of Class In xUnit如何在 xUnit 中对多个类实例进行单元测试
【发布时间】:2018-11-01 21:41:51
【问题描述】:

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

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

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

【问题讨论】:

  • 你总是可以为每个案例编写自己的测试方法。

标签: c# unit-testing xunit


【解决方案1】:

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

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

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

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

【讨论】:

  • 我同意。我想我已经超越了自己。我将专门针对构造函数进行一些测试。这是非常宝贵的信息。谢谢!
猜你喜欢
  • 2012-01-08
  • 2019-04-25
  • 1970-01-01
  • 2018-05-23
  • 1970-01-01
  • 1970-01-01
  • 2015-11-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多