java – 验证对静态方法的调用
发布时间:2020-12-15 01:05:49 所属栏目:Java 来源:网络整理
导读:我想验证是否已调用公共静态void方法. @RunWith(PowerMockRunner.class)@PrepareForTest({ConsoleLog.class})public class AdContentDataUnitTest { @Before public void setUp() throws Exception { PowerMockito.mockStatic(ConsoleLog.class); } @Test pu
我想验证是否已调用公共静态void方法.
将调用sendTrackingEvent,并将调用ConsoleLog.v(String,String).我可以在调试中看到调用静态方法,但出现以下日志并且测试失败:
我尝试在相同的日志之后添加verifyStatic,如果我删除第一个验证,则不会检查任何内容.如果我模拟整个ConsoleLog类,则会在此处检测到错误未完成的存根:[…] PowerMockitoCore.doAnswer. 有谁知道如何正确地做到这一点? 最佳答案
是.根本不要这样做. 假设您有一个类调用静态方法,如下所示:
将静态调用解压缩为非静态方法:
现在您可以编写测试,覆盖提取的方法:
但理想的解决方案实际上是重构被测试的代码,根本不使用这种静态调用,而是依赖注入. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- Android通过HttpClient执行post请求
- Graphql Java hello world:将子模式添加到父模式
- java – 让JCheckbox更大..?
- java – 通过Lambdas自行执行匿名函数
- MySQL为例讲解JDBC数据库连接步骤
- 谈谈Java中整数类型(short int long)的存储方式
- ArrayBlockingQueue和LinkedBlockingQueue
- java.lang.ClassCastException:java.lang.Integ
- java – 在独立群集上提交Spark应用程序
- java – JSPG0122E:无法解析Websphere 8中的EL函
热点阅读