在使用Mockito模擬方法拋出異常時,可以使用Mockito的doThrow()
方法來模擬方法拋出異常。下面是一個簡單的示例:
假設有一個UserService類,其中有一個方法getUserById(),當傳入的id為null時會拋出NullPointerException異常:
public class UserService {
public User getUserById(String id) {
if (id == null) {
throw new NullPointerException("id cannot be null");
}
// 其他邏輯
}
}
現在我們想要使用Mockito來模擬getUserById()方法拋出異常,可以這樣做:
import static org.mockito.Mockito.*;
public class UserServiceTest {
@Test
public void testGetUserById() {
UserService userService = mock(UserService.class);
// 模擬方法拋出異常
doThrow(new NullPointerException("id cannot be null"))
.when(userService)
.getUserById(isNull());
// 調用被測試方法
User result = userService.getUserById(null);
// 斷言拋出異常
assertNotNull(result);
}
}
在上面的示例中,我們使用doThrow()
方法模擬了getUserById()方法在傳入null時拋出NullPointerException異常。然后我們調用被測試方法并斷言是否拋出了異常。
通過這種方法,我們可以很方便地使用Mockito來模擬方法拋出異常,從而進行異常處理的單元測試。