|
|
1
11
我想你可能有点误解了。
您可以通过测试返回值是否为您根据传入的参数所期望的值来对此进行测试。 当测试需要引入模拟时,静态方法会变得麻烦。
假设我有一些代码调用
为了测试这样的东西,我将引入一个接口:
然后,我的代码将获取实现此接口的对象的实例(在方法调用中或作为构造函数中的参数),然后调用
为了测试这个,我可以嘲笑
这可能看起来代码更复杂(它是这样的),但它会让测试变得更容易。 |
|
|
2
8
避免静态当然是一种方法,但是当您不能或者正在使用遗留代码时,可以使用以下选项。下面是阿德里安班克斯对上述问题的回答,假设您有以下代码(抱歉,它是用Java编写的,因为我不知道C#):
然后在准备单元测试时,创建一个模拟类,该类扩展了原始类并终止了该功能:
现在,您已经执行了someMethod()的所有功能,而没有实际删除该文件,您仍然可以查看是否调用了该方法。 |
|
|
3
7
一般来说,如果方法:
那就不要让它静止。(请参阅@adrianbanks的答案,以获得有关此问题背后的原因和备选方案的精彩讨论。)
|