![]() |
1
4
答案是肯定的,有些代码需要更改才能进行测试。 但可能有很多代码可以在不需要更改的情况下进行测试。我将首先专注于为那些东西编写测试,然后在其他客户需求给您以可测试的方式重构它的机会时为其他东西编写测试。 |
![]() |
2
1
代码可以从一开始就编写成可测试的。如果不是从一开始就考虑可测试性,你仍然可以测试它,你可能会遇到一些困难。 在假设的代码中,可以通过创建一个日期远在过去的SalesOrder来测试原始代码,也可以模拟DateTime.Now。如您所示对代码进行重构对于测试来说更好,但这并不是绝对必要的。 |
![]() |
3
1
如果您的代码不是设计用来测试的,那么测试它就更困难了。在您的示例中,您必须重写DateTime.Now方法,这显然不是一项简单的任务。 我认为在代码中添加测试没有什么价值,或者不允许更改现有代码,那么就不应该这样做。
|
![]() |
4
1
可以使用模拟对象框架对原始示例进行单元测试。在本例中,我将模拟SalesOrder对象多次,每次配置不同的日期值,然后测试。这样可以避免更改任何发布的代码,并允许您验证有关的算法,即订单日期在过去不太远。 |
![]() |
5
0
|
![]() |
6
0
这类代码的问题始终是,它正在创建并依赖于许多静态类、框架类型等。。。 为所有这些对象“注入”赝品的一个非常好的解决方案是Typemock隔离器(这是一个商业化的解决方案,但值每一分钱)。所以是的,你当然 测试遗留代码,它是在不考虑可测试性的情况下编写的。我用Typemock完成了一个大项目,取得了很好的效果。 除了Typemock之外,您还可以使用免费的MS-Moles框架,其功能基本相同。只是它有一个非常不直观的API,而且很难学习和使用。
哦。
|
![]() |
7
0
|
|
D. Smel · 如何在线性模型的两侧生成对数函数 6 年前 |
![]() |
santobedi · scikit学习中的多输出高斯过程回归 6 年前 |
|
Ben · FELM+Stargazer-将工具变量估计与OLS对齐 6 年前 |
|
Anx8 · minepy:缓冲区的维度数错误 6 年前 |