gpt4 book ai didi

java - 不能模拟/ spy 类 java.util.Optional

转载 作者:行者123 更新时间:2023-12-05 08:39:52 24 4
gpt4 key购买 nike

我正在尝试实现这个 JUnit 代码:

private BinlistsService binlistsService = Mockito.mock(BinlistsService.class);

@Mock
Optional<BinLists> binList = null;

@BeforeEach
public void beforeEachTest() throws IOException {

BinLists binLists = new BinLists();
binLists.setId(1);
....

binList = Optional.of(binLists);
}

@Test
public void testBinCountryCheckFilterImpl() {

when(binlistsService.findByName(anyString())).thenReturn(binList);

}

但是我得到了这个错误堆栈:

org.mockito.exceptions.base.MockitoException: 
Cannot mock/spy class java.util.Optional
Mockito cannot mock/spy because :
- final class
at org.data

你知道我该如何解决这个问题吗?

最佳答案

删除 @MockOptional<BinLists> 上字段。

Optional是一个可以由您轻松创建和控制的简单类,因此您无需模拟它。只需在需要时创建一个实际实例,您已经在 beforeEachTest() 中创建了它。 :

private BinlistsService binlistsService = Mockito.mock(BinlistsService.class);

Optional<BinLists> binList = null;

@BeforeEach
public void beforeEachTest() throws IOException {

BinLists binLists = new BinLists();
binLists.setId(1);
....

binList = Optional.of(binLists);
}

@Test
public void testBinCountryCheckFilterImpl() {

when(binlistsService.findByName(anyString())).thenReturn(binList);

}

关于java - 不能模拟/ spy 类 java.util.Optional,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58633763/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com