我想模拟下面返回OptionalData
的语句,模拟该数据,使Optional.isPresent()
返回false
。
private static Optional<UserList> userListOptional
private static SharedList sharedList
sharedList = SharedList.builder()
.sharedListId(2000L)
.collaboratorList(collaboratorLists)
.build()
userListOptional = Optional.of(
UserList.builder()
.userListId(1234)
.userId(607042)
.activeFlag(true)
.userName("UnitedStates")
.sharedList(sharedList)
.build()
)
userListRepository.findByUserIdAndSharedListAndActiveFlagTrue(*_) >> userListOptional
我的测试代码是:
Optional<UserList> userListOptional = userListRepository
.findByUserIdAndSharedListAndActiveFlagTrue(user.getUserId(), sharedList);
3条答案
按热度按时间rta7y2nd1#
如果您只需要一个
Optional
返回false
forisPresent()
,则根本不需要模拟Optional,只需创建一个空的Optional即可。假设我们有这些简化的应用程序类:
那么您的Spock规格可能如下所示:
当然,这个测试只测试模拟对象实际上返回了stubed返回值,但是您已经明白了。我希望这是您想知道的,因为无论是您的问题本身还是您发布的代码片段都不够清楚,无法传达您的意图。
nwsw7zdq2#
您可以使用以下命令:
可选. empty()
在Junit测试中。
例如:
55ooxyrt3#
对于Mockito,你可以使用这个值,它的工作就像一个奇迹,它为我工作。
它会自动将其指定为可选。返回时为空...干杯...