2017-01-28 28 views
21

Tôi đang cố gắng thực hiện kiểm tra đơn vị với @InjectMocks@Mock.MockitoJUnitRunner không được dùng nữa

@RunWith(MockitoJUnitRunner.class) 
public class ProblemDefinitionTest { 

    @InjectMocks 
    ProblemDefinition problemDefinition; 

    @Mock 
    Matrix matrixMock;  

    @Test 
    public void sanityCheck() { 
     Assert.assertNotNull(problemDefinition); 
     Assert.assertNotNull(matrixMock); 
    } 
} 

Khi tôi không bao gồm chú thích @RunWith, kiểm tra không thành công. Nhưng

Loại MockitoJUnitRunner bị phản

Tôi đang sử dụng Mockito 2.6.9. Làm thế nào tôi nên đi về điều này?

Trả lời

0

Bạn có thể thử loại này, nếu bạn không muốn sử dụng @RunWith (MockitoJUnitRunner.class)

@BeforeClass 
public void setup() { 
    MockitoAnnotations.initMocks(this); 
} 
5

Bạn có thể thử cách này:

@Before 
public void setup() { 
    MockitoAnnotations.initMocks(this); 
} 

Vì bạn thêm chú thích @Before, Đối tượng giả của bạn có thể mới và được ghi nhiều lần và trong tất cả các thử nghiệm, bạn có thể cung cấp cho đối tượng thuộc tính mới. Tuy nhiên, nếu bạn muốn một thời gian kỷ lục hành vi cho đối tượng giả xin vui lòng thêm @BeforeCLass

2

Ngoài ra còn có một tùy chọn @Rule:

@Rule 
public MockitoRule rule = MockitoJUnit.rule(); 

Hoặc trong Kotlin:

@get:Rule 
var rule = MockitoJUnit.rule() 
Các vấn đề liên quan