因此,我正在编写一种方法来对与Firebase身份验证的交互进行单元测试-我已经成功模拟了所有其他需要的东西,但是我不确定如何模拟被测方法中对{{1 }}
因为Tasks.await(someTask).someValue
是静态的,所以我不能真正嘲笑它。
我能够模拟任务本身,但不能模拟对await方法的调用。我是否可以通过某种方法诱使Tasks.await()
认为任务是真实的,以使其正常运行?
在这里我能做些什么吗?
答案 0 :(得分:2)
据我所知,您需要PowerMockito,因为Mockito无法模拟静态或最终的类/方法。
简而言之,您需要使用以下内容注释测试类
Type
然后,您需要使用以下功能在测试方法(或@RunWith(PowerMockRunner.class)
@PrepareForTest(Tasks.class)
)中启用静态或最终方法的模拟/存根
@Before
然后使用
PowerMockito.mockStatic(Tasks.class);
有关更全面的答案,请参见this Post
答案 1 :(得分:0)
如何创建一个接口并在该接口中拉那个static
方法。现在,将此接口作为类中的依赖项传递。模拟该界面。如果可以共享一些代码,我可以向您展示如何传递接口。