使用 Mockito 模拟 Firebase 身份验证

时间:2021-01-08 08:03:58

标签: java testing junit firebase-authentication mockito

我在我的 Java 项目中使用 FirebaseAuth,我想做一些测试。我不想测试 Firebase 类本身(显然我认为),而是一个实现 Firebase 方法调用的 Service 类。

所以代码是这样的:

@Service
public class MyServiceImpl implements MyService

  public MyServiceImpl() {}

  public void deleteUser(String uid){
    // do something
    FirebaseAuth.getInstance().deleteUser(uid); // <-- I want to mock this call
  }

所以我正在运行 JUnit 测试,其中我使用 MyServiceImpl.java 模拟 DAO 方法调用到 @Spy。但我不知道如何模拟 FirebaseAuth 实例及其方法。

我试过了:

@Test
public void mockFirebase(){
  FirebaseAuth auth mockFirebase = Mockito.mock(FirebaseAuth.class);
  Mockito.when(mockFirebase.getInstance()).thenReturn(/* null ?? */);
}

但我认为它尝试与 Firebase 连接是因为我删除了所有配置以避免连接和测试在结果的第一行失败。

<块引用>

名为 [DEFAULT] 的 FirebaseApp 不存在。

我还阅读了一些关于将 Mockito 与 Firestore 或 FirebaseDatabase 一起使用的问题,但没有与 FirebaseAuth 一起使用。

此时我不知道如何模拟 delete() 方法,如果我必须使用 @Spy(如 DAO 层)创建模拟类,或者我必须模拟整个 FirebaseAuth 类或其他任何内容.

提前致谢。

0 个答案:

没有答案