在一個web項目的開發中,對于controller和service的測試,可以利用mockito框架來進行快速的單元測試。每個測試用例都只測試被測方法的功能,而不關系其調用的其他方法的功能是否正確。@RunWith(MockitoJUnitRunner.class)public class ActivityControllerTest { @Mock private ActivityService activitySearcher; private ActivityController controller; @Before public void setUp() throws Exception { controller = new ActivityController(activitySearcher); } @Test public void should_return_activity_list() throws Exception { List<Activity> activities = new ArrayList<Activity>(3); for (int i = 1; i < 4; i++) { Activity activity = new Activity(); activity.setId(i); activity.setTitle("activity" + i); activity.setCreateTime(1L); activity.setEndTime(2L); activity.setImg("/img/" + i + ".jpg"); activities.add(activity); } int page = 1; when(activitySearcher.getList(page)).thenReturn(activities); List<Activity> result = controller.getList(page); assertThat(result, is(activities)); }}但是對于dao層,因為使用spring和mybatis整合,所以我只需要寫接口就可以完成工作:@Repository@Mapperpublic interface ActivityDao { @Select("select id, title, content, create_time, end_time, img " + "from activity limit #{start}, #{offset}") List<Activity> list(@Param("start") int start, @Param("offset") int offset); @Insert("insert into activity(title, content, create_time, end_time, img)" + "value (#{title}, #{content}, #{createTime}, #{endTime}, #{img})") int addActivity(Activity activity);}但是這樣,具體的實現就交給了框架完成了。這時,我仍舊希望能夠通過mockito框架來進行測試,模擬出數據庫連接和sql執行的結果,我應該用mock創建什么對象呢?是不是需要找到創建數據庫連接和執行sql的類,然后mock出來?但是我應該怎么去找到這些需要mock的類呢?
添加回答
舉報
0/150
提交
取消