program tip

MockitoJUnitRunner는 더 이상 사용되지 않습니다.

radiobox 2020. 12. 11. 08:02
반응형

MockitoJUnitRunner는 더 이상 사용되지 않습니다.


@InjectMocks으로 단위 테스트를 시도 하고 @Mock있습니다.

@RunWith(MockitoJUnitRunner.class)
public class ProblemDefinitionTest {

    @InjectMocks
    ProblemDefinition problemDefinition;

    @Mock
    Matrix matrixMock;    

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

@RunWith주석을 포함하지 않으면 테스트가 실패합니다. 그러나

MockitoJUnitRunner 유형은 더 이상 사용되지 않습니다.

Mockito 2.6.9를 사용하고 있습니다. 어떻게해야합니까?


org.mockito.runners.MockitoJUnitRunner이제 실제로 사용되지 않으므로 org.mockito.junit.MockitoJUnitRunner대신 사용해야 합니다. 패키지 이름 만 변경된 것을 볼 수 있듯이 클래스의 단순한 이름은 여전히 MockitoJUnitRunner.

의 javadoc에서 발췌 org.mockito.runners.MockitoJUnitRunner:

로 이동했습니다 MockitoJUnitRunner.이 클래스는 Mockito 3에서 제거됩니다.


이것을 시도 할 수 있습니다.

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

@Before주석 을 추가하기 때문에 모의 객체는 새롭고 여러 번 기록 될 수 있으며 모든 테스트에서 객체에 새 속성을 부여 할 수 있습니다. 그러나 모의 객체에 대한 일회성 기록 동작을 원한다면 추가하십시오@BeforeCLass


@Rule옵션 있습니다.

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

또는 Kotlin에서 :

@get:Rule
var rule = MockitoJUnit.rule()

@RunWith (MockitoJUnitRunner.class)를 사용하지 않으려면 이것을 시도 할 수 있습니다.

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

참고 URL : https://stackoverflow.com/questions/41909538/mockitojunitrunner-is-deprecated

반응형