android - 如何模拟 FirebaseInstanceId.getInstance()
问题描述
如何模拟 FirebaseInstanceId?我想做的就是当我调用该方法时
FirebaseInstanceId.getInstance().getToken()
它应该返回一个空字符串。
我也尝试过使用 PowerMockRunner。
@RunWith(PowerMockRunner.class)
@PowerMockRunnerDelegate(JUnit4.class)
@PrepareForTest({ FirebaseInstanceId.class})
public class NotificationServiceTest {
当我执行以下操作时:
FirebaseInstanceId firebaseInstanceId = mock(FirebaseInstanceId.class);
Mockito.when(firebaseInstanceId.getInstance()).thenReturn(firebaseInstanceId);
我收到以下错误:java.lang.RuntimeException:android.os.Process 中的方法 myPid 未模拟。有关详细信息,请参阅http://g.co/androidstudio/not-mocked。
解决方案
你应该打电话
FirebaseApp.initializeApp(RuntimeEnvironment.application)
在您的测试用例中,如果您使用 Robolectric 或以其他方式通过相关Application
推荐阅读
- powerbi - 如何在 Power BI 中更改可视化的数据表
- python - 如何使用烧瓶应用程序访问现有的(SNOWFLAKE)数据库?
- java - Spring Data REST QueryDSL 任意绑定
- arrays - Angular 前端 - 保存在数组中
- kubernetes - 如何使用 Ansible 创建 Kubernetes Secret?
- python - 使用 FG 方法将圆盘映射到正方形
- selenium - Pytest Selenium elem.send_keys() 导致 TypeError:“NoneType”类型的对象没有 len()
- python - 神经网络 Python 错误“无法获得卷积算法”
- python - 从大列表中删除重复项,但如果确实存在则删除两者?
- google-calendar-api - 添加到谷歌日历选项切断一些描述内容