【问题标题】:Does Junit/Mockito hold value from actual method return?Junit/Mockito 是否持有实际方法返回的值?
【发布时间】:2020-02-21 10:35:47
【问题描述】:
@Test 
public void testTotalMarks(){
   Mark gMark = fakeMarkGenerator.createMarks();
   DBMark dbMark = markMapper.toDBMark(gMark);

   when(repoLayer.findMarksByStudentId()).thenReturn(Optional.of(dbMark)); 
 markService.createMarks(gMark); //Actually createMarks method return type is DBMark. 
//But this code works fine.
//Shouldn't this be DBMark dbMark2 =  markService.createMarks(gMark); ??

verify(mockMarkMapper, times(2)).toTotal(any(Total.class)); //I don't understand times here

Assert statement
}

【问题讨论】:

  • 请发布您要测试的方法。
  • verify 仅在使用times(x) 时检查该方法是否被调用x 次。它与结果的比较无关。

标签: junit mockito jmock


【解决方案1】:

我不明白这里的时间

Times 表示您希望验证的方法的调用次数。

这不应该是 DBMark dbMark2 = markService.createMarks(gMark); ??

如果您尝试断言从您正在测试的方法返回的值,那么是的,您应该将它分配给一个变量并断言您的值。例如:

assertThat(dbMarks.size, <maybe your matcher here>)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-21
    • 2014-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多