【发布时间】:2010-09-11 06:15:08
【问题描述】:
package com.fitaxis.test;
import java.sql.SQLException;
import org.junit.Assert;
import org.junit.Test;
import org.mockito.Mockito;
import org.mockito.invocation.InvocationOnMock;
import org.mockito.stubbing.Answer;
import static org.mockito.Mockito.*;
import com.fitaxis.leaderboard.LeaderBoard;
public class LeaderBoardTests {
@Test
public void TestThatDataIsSavedToTheDatabase()
{
LeaderBoard leaderBoard = mock(LeaderBoard.class);
//doNothing().doThrow(new RuntimeException()).when(leaderBoard).saveData();
when(leaderBoard.saveData()).thenReturn(true);
boolean res = leaderBoard.saveData();
verify(leaderBoard).saveData();
Assert.assertTrue(res);
}
}
我使用 mockito 来模拟一个类,但是当我使用代码覆盖率时,它不会检测到该方法已被调用。难道我做错了什么?请帮忙!
【问题讨论】:
-
我不明白这个问题。是否抛出异常? “代码覆盖率仍然很低”是什么意思 - 您是否使用外部工具进行验证?哪一个? Cobertura?
-
我用过 EclEmma。通常,当我模拟东西并使用像 NCover 这样的工具时,它会显示正在调用的方法,我想知道我是否做错了什么。