在單元測試中有時須要對方法體內new出來的對象進行方法隔離,powermock提供了這個功能,下面是一個段樣例代碼:單元測試
UserBean user = mock(UserBean.class, RETURNS_DEEP_STUBS); when(user.getName()).thenReturn(null); //從excel中獲取屬性值 user.setAge((String) dpdata.get("age").get(0)); user.setName((String) dpdata.get("name").get(0)); UserBean mockUserBean = PowerMockito.mock(UserBean.class, RETURNS_DEEP_STUBS); when(mockUserBean.getName()).thenReturn(null); try { PowerMockito.whenNew(UserBean.class).withNoArguments() .thenReturn(mockUserBean); } catch (Exception e1) { e1.printStackTrace(); }
RETURNS_DEEP_STUBS 屬性是爲了支持多層mock時使用。測試