![]() |
1
1
一般来说,从测试的角度来看,这不是一个好主意。通过使成员
也许更好的解决方案是
Singleton Pattern
. 要执行此操作,请去掉上的静态修饰符
|
![]() |
2
1
简短回答:你做不好。单元测试和静态不能很好地结合在一起,您(几乎)总是会遇到像您提到的那样的问题。 更长的答案:最好的解决方案是重构代码。即使您需要单例行为,您也有几个选项(例如依赖注入)。大卫的建议当然也是一个选项,至少可以让你测试你的缓存,但是当你想测试系统的其余部分时,你可能仍然有问题。 如果出于某种原因,你想坚持你目前的设计,你仍然可以有一些(不必要的好的)解决办法。一些例子: 最简单的方法可能是添加“cleancache”方法。在某些情况下,它甚至可能对系统的其余部分有用,并且每个测试也可以作为第一步(在“设置/预测试或类似方法”中)。 您还可以使用可见性,让您的测试执行其他代码不允许的清理。 只要您不并行运行测试,这些黑客程序就可能工作。 |
![]() |
mg610 · 如何开始C++单元测试 2 年前 |
![]() |
Phil Gunning · 使用嵌套函数更改进行模拟测试 2 年前 |
![]() |
shilin agre · 在Python中测试修饰函数 2 年前 |
![]() |
SlipScout · Unittest只传递单个值,而不是获取多个值 2 年前 |
![]() |
Alex · 从实际对象的实例返回默认模拟结果 2 年前 |