1
Mockito 프레임 워크 (및 동작/테스트 주도 개발)를 사용하고 을 사용하여 새로운 코드를 작성하는 데 새로운 기능이 있습니다. (MockitoAnnotations.initMocks(Class)
이 BaseTestClass
에 사용) : 그래픽 물건을 만들 수있는 XML과 에 대한 내 자신의 자바 라이브러리를 코딩모비토 코드 @ beforee annoted method solution
미안 내가 먼저 어떤 행동을 확인 시도
public class GeneralXml extends BaseTestClass {
private static final String TAG = "General XML";
@Mock(name="xml") private XmlGraphics mockXML;
@Before
public void setUp() throws Exception{
//stub method parseDimension
when(mockXML.parseDimension(anyString()))
.thenReturn(500);
// stub method parsePosition: 500 X 500 X 500 is an
// arbitrary dimension of window
when(mockXML.parsePosition(anyString()))
.thenReturn(
new Random().nextFloat() * mockXML.parseDimension(Xml.WIDTH),
new Random().nextFloat() * mockXML.parseDimension(Xml.HEIGHT),
new Random().nextFloat() * mockXML.parseDimension(Xml.DEPHT));
// Now Colors must have betwwen 0 and 255
// (RGB color)
when(mockXML.parseColorComponent(anyString()))
.thenReturn(
new Random().nextInt(256),
new Random().nextInt(256),
new Random().nextInt(256));
}
을하지만 모든 후속에 오류가 발생
:@Test
public void mockPosition() {
Log.d(TAG, "mock", "x = "+mockXML.parsePosition(Xml.X));
Log.d(TAG, "mock", "y = "+mockXML.parsePosition(Xml.Y));
Log.d(TAG, "mock", "z = "+mockXML.parsePosition(Xml.Z));
verify(mockXML, times(3)).parsePosition(anyString());
}
이 내 오류에 있다고 생각 : 같은 검증,
이것은 유효한 코드가 아닙니다. 아니면 내가 뭔가를 오해 한거야? 어떤 도움 감사
하지 내가 BaseTestClass에서 "uninherited" – gcrav
I "uninherited"GeneralXml (즉 itsef이 MockitoAnnotation이 너무 작동 .initMocks (this), setUp()에 넣었지만 작동하지 않았다; – gcrav
JUnit으로부터 다음과 같은 응답이 있습니다. org.mockito.exceptions.misusing.UnfinishedStubbingException : gUploading에서 완료되지 않은 스텁이 감지되었습니다 : -> at gml.processing. xml.reader.test.GeneralXml.setUp (GeneralXml.java:34) 예를 들면 다음과 같습니다.()가 누락되었을 수 있습니다. 정확한 스터 빙 예제 : when (mock.isOk()). then return (true); (mock.isOk()) whenThrow (exception); doThrow (예외) .when (모의) .someVoidMethod(); 힌트 : 누락 된 thenReturn() 2. 스텁 된 메소드가 mock을 반환 할 수 있지만 thenReturn 메소드 내부에서 모의 생성 (mock()) 호출을 인라인 할 수 없음 (문제 53 참조) – gcrav