developer tip

Mockito 구문에 대한 가져 오기 정적 문 찾기

copycodes 2020. 11. 8. 10:12
반응형

Mockito 구문에 대한 가져 오기 정적 문 찾기


저와 Mockito 사이의 벽돌 벽을 부수려고합니다. 나는 Mockito 물건에 대한 올바른 import static을 얻으려고 노력하면서 머리카락을 찢어 버렸습니다. 당신은 누군가가 단지 말하는 테이블 던질 것 같아 anyInt는 () 에서 유래 org.mockito.Matchers때를 () 에서 오는 org.mockito.Mockito 등,하지만 그건 아니, 이민자에 너무 도움이 될 것입니다?

특히 별표로 끝나는 더 많은 import 문과 함께 사용되는 경우 이러한 종류가 항상 도움이되는 것은 아닙니다.

import static org.junit.Assert.*;
import static org.mockito.Mockito.*;

예, Eclipse 창-> 환경 설정-> Java-> 편집기-> 컨텐츠 지원-> 즐겨 찾기 메커니즘에 대해 알고 있으며 사용하려고했습니다 . 도움이되지만 머리에 못을 박지는 않습니다.

이 질문에 대한 모든 답변을 주시면 감사하겠습니다.

많은 감사합니다, Russ


문제는 Hamcrest 와 Mockito의 정적 가져 오기가 이름이 비슷하지만 각각 Matchers와 실제 값을 반환한다는 것입니다.

한 가지 해결 방법은 단순히 Hamcrest 및 / 또는 Mockito 클래스를 복사하고 정적 함수를 삭제 / 이름을 변경하여 기억하기 쉽고 자동 완성에 덜 표시되도록하는 것입니다. 그게 내가 한 일입니다.

모의 객체를 사용하는 경우 또한, 나는 피하려고 assertThat호의 기타 기타에 assertionsverify, 예를 들어,

assertEquals(1, 1);
verify(someMock).someMethod(eq(1));

대신에

assertThat(1, equalTo(1));
verify(someMock).someMethod(eq(1));

Eclipse의 즐겨 찾기에서 클래스를 제거하고 긴 이름을 입력하고 org.hamcrest.Matchers.equalToCTRL + SHIFT + M을 눌러 '가져 오기 추가'를 수행하면 자동 완성 기능은 Mockito 매 처가 아닌 Hamcrest 매처 만 표시합니다. 매처를 혼합하지 않는 한 다른 방법으로도 가능합니다.


상황에 대처하기 위해 제가했던 일이 있습니다.

새로운 테스트 클래스에서 글로벌 가져 오기를 사용합니다.

import static org.junit.Assert.*;
import static org.mockito.Mockito.*;
import static org.mockito.Matchers.*;

테스트 작성을 마치고 커밋해야 할 때 CTRL + SHIFT + O로 패키지를 구성합니다. 예를 들어 다음과 같이 남을 수 있습니다.

import static org.mockito.Mockito.doThrow;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import static org.mockito.Matchers.anyString;

이를 통해 가져올 올바른 패키지를 찾으려고 '고착'하지 않고 코드를 작성할 수 있습니다.


is ()의 경우

import static org.hamcrest.CoreMatchers.*;

assertThat ()의 경우

import static org.junit.Assert.*;

when () 및 verify ()

import static org.mockito.Mockito.*;

참고 URL : https://stackoverflow.com/questions/7322705/finding-import-static-statements-for-mockito-constructs

반응형