2017-09-27 9 views
0

私はmockitoを初めて使うので、いくつかの基本的な例を学びたいと思います。基本的な例が失敗した場合は

ここは私のサービスです。

public class MyCoolServiceImpl implements MyCoolService{ 

    public String getName() { 
     return "String from service"; 
    } 

} 

MyCoolServiceちょうどインタフェース

public interface MyCoolService { 

    public String getName(); 
} 

であると私は、単純なユースケースがあります。

public class SomeUseCase { 
    private MyCoolService service = new MyCoolServiceImpl(); 

    public String getNameFromService(){ 
     return service.getName(); 
    } 
} 

が複雑Mothingを。次のようにだから私は私のテストクラスを記述します。

だから、
public class SomeUseCaseTest { 
    @Mock 
    MyCoolService service; 

    SomeUseCase useCase = new SomeUseCase(); 

    @Before 
    public void setUp(){ 
     initMocks(this); 

     when(service.getName()).thenReturn("String from mockito"); 
    } 


    @Test 
    public void getNameTest(){ 

     String str = useCase.getNameFromService(); 

     assertEquals("String from mockito", str); 
    } 
} 

、私は理解して、それが"String from service"を返すので、私はservice.getName()が呼び出されたときに、その文字列を返すようにmockitoを言っているので、strは、"String from mockito"が含まれている必要があります、しかし、私のテストが失敗しました。

私はここで何が欠けていますか?私はモッキートの仕組みを誤解していましたか?

答えて

1

mockito作成したモックをどこに注入するかを教えてください。あなたの場合、@InjectMocks注釈を使用するだけです:

public class SomeUseCaseTest { 
    @Mock 
    MyCoolService service; 

    @InjectMocks 
    SomeUseCase useCase = new SomeUseCase(); 

    .... 
} 
+0

いいです。ありがとう! – Manu

関連する問題