【问题标题】:Write Unit Tests for Static Methods为静态方法编写单元测试
【发布时间】:2014-04-09 10:05:56
【问题描述】:

在我的项目中,有很多静态方法,并且所有方法都依次访问数据库。我应该为该项目编写单元测试,但由于所有方法都是静态的并且它们正在访问 DB,因此经常受到打击。有什么办法可以克服这个。很抱歉这个问题很抽象,但我担心的是为静态方法和那些命中 DB 的方法编写单元测试的方法是什么。当方法是静态的并且在我的项目中一种方法是在同一个类中调用其他方法时,最小起订量没有用。所以在这种情况下,我不能 MOQ 内部方法,因为两者都在同一个类中。

【问题讨论】:

标签: asp.net unit-testing webforms moq static-methods


【解决方案1】:

我目前参与的项目比你描述的要糟糕得多。这是一个不可测试系统的蓝图。我认为有几种选择,但这完全取决于您的情况。

编写针对数据库的集成测试,并一起测试多个组件。我知道这并不理想,但它至少会给你所做的工作一些信心。然后尝试一次一小步地重构您的代码,(一定要采取小步骤)并围绕该代码编写单元测试。确保您的集成测试继续通过。如果语义发生变化,您仍然可以重构代际类型测试。

这可能不像我说的那样容易,而且需要时间。所以我说这取决于你的情况。

另一种选择是(我知道很多人使用遗留代码这样做)使用其中一个昂贵的隔离框架,例如 Isolator、MS Fakes,也许可以伪造那些无法测试的依赖项。编写完这些测试后,您可以考虑重构代码以使其更具可测试性。

【讨论】:

  • 是的,目前我只写集成测试。我理解你的解决方案。我不确定它对我的情况有多大帮助,但会尝试实施它们。
猜你喜欢
  • 2019-06-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-11
  • 1970-01-01
  • 2011-08-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多