web-dev-qa-db-ja.com

mockitoを使用して、キャッチされないカスタム例外をスローするメソッドをテストする

このメソッドをテストするためにMockitoベースのJUnitメソッドをどのように書きますかadduser()?作成しようとしましたが、例外が処理されないというエラーメッセージが表示されて失敗します。エラーは次の場合に表示されます。

_when(service.addUser("nginx")).thenReturn("Apache");
_

ビジネスクラスのaddUser()メソッドが例外をキャッチすることはなく、再スローは行われないと仮定します。

_class Business {
    public User addUser() throws ServiceException{
        User user = service.addUser("nginx");
        return user;
    }
}
_

テストケースメソッド:

ここのテストクラスでは、サービスレイヤークラスを_@Mock_属性でモックし、それを注入しています。

_@Mock
Service service;   

@InjectMocks
Business business = new Business();

@Test
public void testAddUser() {
    when(service.addUser("nginx")).thenReturn("Apache");    
    User user = business.addUser("nginx");
    assertNotNull(user);
}
_

テストケースでの例外シナリオの処理方法を教えてください。

35
Sekhar

テストメソッドで例外を宣言します。

public void testAddUser() throws ServiceException{
...
}
57