我有一个需要多次调用的方法,我可以在测试用例中返回相同的结果,我调用when
用于循环,但有更简单的方法吗?
val ONE_DAY_FORMAT: SimpleDateFormat = SimpleDateFormat("yyyy-MM-dd")
val tempCalendar = Calendar.getInstance()
for (i in (0..15)) {
`when`(accountingDao.sumOfDay(ONE_DAY_FORMAT.format(tempCalendar.time)))
.thenReturn(100.0f)
tempCalendar.add(Calendar.DAY_OF_YEAR, -1)
}
答案 0 :(得分:0)
不是模拟相同的方法,而是模拟方法一次并通过传递可选的Verification模式参数来调用verify方法。例如,如果您希望模拟类的某些方法被调用两次,则可以像这样生成一个验证语句
verify(mockedClass, Mockito.times(2)).someMethod();
这将测试someMethod()
是否被调用两次。
答案 1 :(得分:0)
移动你的"当..."声明离开你的循环:
when`(accountingDao.sumOfDay(any()).thenReturn(100.0f)
答案 2 :(得分:0)
通常,当设置更复杂时,将使用private void DragOver(object sender, DragEventArgs e)
{
if (sender is StackPanel)
{
//TODO StackPanel DragOver
Debug.WriteLine(sender.GetType().ToString());
}else if(sender is GridView)
{
//TODO GridView DragOver
Debug.WriteLine(sender.GetType().ToString());
}
}
策略:
doAnswer
所以你基本上捕获了输入参数,然后根据它的值决定应该动态返回什么。