你能帮我嘲笑StorageOptions.newBuilder吗?
被嘲笑的代码:
StorageOptions.newBuilder.setProjectId("Test").build().getService()
我写的代码:
Storage mockStorage = Mockito.mock(Storage.class);
MockedStatic<StorageOptions> storageOptionsMock = Mockito.mockStorage(StorageOptions.class);
storageOptionsMock.when( ()-> StorageOptions.newBuilder().setProjectId("Test").build().getService()).thenReturn(mockStorage);
错误:
org.mockito.exceptions.misusing.WrongTypeOfReturnValue:
Storage$MockitoMock$1939527098 cannot be returned by newBuilder()
newBuilder() should return Builder
由于您链接了许多方法调用,因此可以使用Mockito。RETURNS_DEEP_STUBS
指示Mockito返回所有需要的中间存根/mock。
Storage mockStorage = Mockito.mock(Storage.class);
MockedStatic<StorageOptions> storageOptionsMock =
Mockito.mockStatic(StorageOptions.class, Mockito.RETURNS_DEEP_STUBS);
storageOptionsMock.when(()->
StorageOptions.newBuilder()
.setProjectId("Test")
.build()
.getService())
.thenReturn(mockStorage);
assertThat(StorageOptions.newBuilder()
.setProjectId("Test")
.build()
.getService())
.isEqualTo(mockStorage);
但由于这被认为是一种反模式,您可能需要重构代码以避免这种情况。
我已经写了一个代码来录制音频并保存到下面的文件位置。 在Logcat中,它为我提供了一个文件位置 我无法在SD卡上找到此文件位置。如何访问该位置?
我有一个问题与存根我的存储库。有人建议我只创建另一个application.properties(我没有这样做),并使用像H2这样的内存数据库。不过,我想知道我是否可以只是存根调用,这样当调用MyDataService.FindById(id)而不是试图从数据库中获取它时,就可以返回一个模拟对象?
我开始开发Azure功能。我已经能够连接到我实际的azure存储帐户队列,以测试如何使用azure功能编程。现在,我的下一步是使用Microsoft Azure Storage Explorer来使用本地存储帐户,这样我就不必连接到Azure。我在这篇文章中看到了如何做到这一点:https://docs.microsoft.com/en-us/azure/storage/storage-confi
问题内容: 我正在尝试第一次使用PowerMockito模拟类构造函数,但是它不起作用。我当前的代码是: 测试失败,因为返回的值为“ Fail”。我的问题在哪里? 问题答案: Okey,找到答案了,您需要致电 代替
现在,当调用“/comments/1”时,我得到了404个错误,所以数据rest没有公开我的存储库。主要问题是“如何模拟存储库方法从数据库中获取数据?” 我的测试类: 据我所知,使用MockBean注释我替换了当前的存储库bean并且它不会被数据rest公开,我们有没有办法将数据预填充到db或存储库方法的模拟调用?
我已经创建了一个包含控制器、服务和存储库层的基本Rest API。我现在正在尝试为通过产品ID查找产品的服务层方法编写一个单元测试。但是,当我运行测试时,它会在我试图模拟存储库findById()方法的行中抛出一个NullPointerException。 服务层中的getProductById()方法如下所示: 我的服务层测试类: