第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何在使用了 Spring Boot 和 MyBatis 的應(yīng)用中使用 Mockito 測(cè)試

如何在使用了 Spring Boot 和 MyBatis 的應(yīng)用中使用 Mockito 測(cè)試

郎朗坤 2019-03-22 11:15:33
在一個(gè)web項(xiàng)目的開(kāi)發(fā)中,對(duì)于controller和service的測(cè)試,可以利用mockito框架來(lái)進(jìn)行快速的單元測(cè)試。每個(gè)測(cè)試用例都只測(cè)試被測(cè)方法的功能,而不關(guān)系其調(diào)用的其他方法的功能是否正確。@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));    }}但是對(duì)于dao層,因?yàn)槭褂胹pring和mybatis整合,所以我只需要寫(xiě)接口就可以完成工作:@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);}但是這樣,具體的實(shí)現(xiàn)就交給了框架完成了。這時(shí),我仍舊希望能夠通過(guò)mockito框架來(lái)進(jìn)行測(cè)試,模擬出數(shù)據(jù)庫(kù)連接和sql執(zhí)行的結(jié)果,我應(yīng)該用mock創(chuàng)建什么對(duì)象呢?是不是需要找到創(chuàng)建數(shù)據(jù)庫(kù)連接和執(zhí)行sql的類(lèi),然后mock出來(lái)?但是我應(yīng)該怎么去找到這些需要mock的類(lèi)呢?
查看完整描述

2 回答

?
萬(wàn)千封印

TA貢獻(xiàn)1891條經(jīng)驗(yàn) 獲得超3個(gè)贊

數(shù)據(jù)庫(kù)測(cè)試沒(méi)必要使用mock使用spring-test直接連接數(shù)據(jù)庫(kù)測(cè)試,在單元測(cè)試環(huán)境中事務(wù)會(huì)自動(dòng)回滾,清理測(cè)試數(shù)據(jù)。這樣準(zhǔn)確性高也簡(jiǎn)單容易。


查看完整回答
反對(duì) 回復(fù) 2019-04-25
?
滄海一幻覺(jué)

TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超5個(gè)贊

題主知道怎么用junit測(cè)這個(gè)dao層嗎?


查看完整回答
反對(duì) 回復(fù) 2019-04-25
  • 2 回答
  • 0 關(guān)注
  • 893 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)