我想在Spring項目中測試一個類。我想在測試類和dao類中儘可能多地進行更改,以便我不必因爲更改而重新測試各種事物。用Mockito嘲笑JdbcTemplate的DataSource
我正在使用這個類有一個JdbcTemplate template
類變量,它由以下實例:
setJdbcTemplate(DataSource dataSource) {
this.template = new JdbcTemplate(dataSource);
}
我想測試的方法使得一個template.query(<code>)
運行定義的SQL查詢並返回結果到一個列表。
我在我的測試用例中創建了以下內容,但我不確定如何投入使用。我可以讓下面的代碼返回一個使用Mockito的字符串列表嗎?
DataSource mockedDataSrc = Mockito.mock(DataSource.class);
customerClassDao.setJdbcTemplate(mockedDataSrc);
我可以以某種方式使用when
或其他命令來設置我要返回到的JdbcTemplate的.query
叫什麼?
數據源通過applicationContext.xml通過Spring注入。我不知道他們爲什麼選擇只注入數據源而不是jdbcTemplate,但我試圖能夠測試我編寫的方法,而不必更改/重構太多的代碼。因爲我的更改實際上隻影響1個方法中的1個SQL調用。 – Kyle 2013-03-27 20:11:01
如果你現在模擬dataSource並傳遞它,你的測試崩潰了嗎?如果沒有,你可以做一些事情,但我需要首先知道。 – 2013-03-27 20:14:48
它不會崩潰,它只是說成功。我只是沒有從這裏出發,我對Mockito/jUnit很陌生。我一直在Google上搜索幾個小時,除了我上面顯示的兩行外,還沒有想出去哪裏。 – Kyle 2013-03-27 20:18:45