Java8Lambda表达式Junit测试
我有一段代码需要测试Java8Lambda表达式Junit测试,java,junit,java-8,Java,Junit,Java 8,我有一段代码需要测试 Optional.ofNullable(someObject.getIssue()) .map(issue -> eventMap.getOrDefault(issue, DEFAULT_VAL)) .ifPresent(event -> {do something;}); 我想测试从eventMap返回的事件。 如何在单元测试中测试这一点?是否有方法捕获“ifPresent”中传递的“事件”的值 这取决于
Optional.ofNullable(someObject.getIssue())
.map(issue -> eventMap.getOrDefault(issue, DEFAULT_VAL))
.ifPresent(event -> {do something;});
我想测试从eventMap返回的事件。
如何在单元测试中测试这一点?是否有方法捕获“ifPresent”中传递的“事件”的值 这取决于你在
做某事中的代码代码>。如果调用某个对象的函数并将事件
作为参数传递,则可以使用例如Mockito来模拟对象,并检查传入参数是否为null
另一种方法是在使用特定的问题
对象调用事件映射
时,对事件映射
进行监视(例如Mockito)。(假设.ifPresent
方法是本身经过测试的true方法)
我想测试从eventMap返回的事件
如果您只对事件
值感兴趣,那么您可以在测试中尝试类似的方法
String issue = someObject.getIssue()
// if needed check issue for nullability
String event = eventMap.getOrDefault(issue, DEFAULT_VAL);
// depending upon your test case
assertThat(event).is("YOUR_EXPECTED_VALUE")
您可以为eventMap.getOrDefault
一些有用的链接编写一个测试:,谢谢您的回复。在.ifPresent方法中,存在一些复杂的代码,无法在其中捕获事件值。这就是为什么我想知道当我们传入它时是否可以捕获它。ifPresent()以及当eventMap
不可避免地被封装在某个类中时…?前提是OP可以使用getEventMap
方法;)(同样不确定eventMap
是否为本地变量)@SagarRohankar是的,我可以这样做,但我很好奇是否可以从lambda表达式本身捕获值。