0
私は安らかなサービスを持っていると私は、データベースに接続せずにテストユニットにしたい:サービスが呼び出されますが、私の問題は、このコード行であるなぜmockMVCとmockitoが一緒に機能しないのですか?したがって、私は、コードのこの作品を書かれている、
@Before
public void setup() throws Exception {
this.mockMvc = webAppContextSetup(webApplicationContext).build();
adminDao = mock(AdminDaoImpl.class);
adminService = new AdminServiceImpl(adminDao);
}
@Test
public void getUserList_test() throws Exception {
User user = getTestUser();
List<User> expected = spy(Lists.newArrayList(user));
when(adminDao.selectUserList()).thenReturn(expected);
mockMvc.perform(get("/admin/user"))
.andExpect(status().isOk())
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8_VALUE))
.andExpect(jsonPath("$", hasSize(1)))
;
}
when(adminDao.selectUserList()).thenReturn(expected);
は機能しません。実際にはadminDao.selectメソッドが呼び出され、結果がデータベースから取得されます。私は望んでいない。 メソッドコールをどうやって模擬することができますか?
を彼らは一緒に完全に正常に動作していますが、文脈の外でクラスをからかっている、どのようにコンテキストは、それらのモックについて知っておくべき? –
@ M.Deinumあなたは正しいです、私はwebApplicationContextを取得することを知っていますが、実際には私はmockMVCコンテキスト内でそれらを模擬する方法を見つけることができません。どうすれば修正できますか? – Shilan
実際のBeanをmockで上書きする構成クラスを作成します。私たちのテストクラスにモックを注入して、あなたが望む動作を記録してください。 –