(번역) 15-mockito 재설정 시뮬레이션
4209 단어 Mockito
//reset mock
reset(calcService);
여기서 우리는 시뮬레이션 대상을 다시 설정한다.MathApplication은 calcService와 리셋 후의 시뮬레이션을 이용하여 mock 방법을 사용하여 실패한 테스트를 실행합니다.
예컨대
1단계 – 수학 함수를 제공하는 Calculator Service라는 인터페이스를 만듭니다.
파일:Calculator Service.java
/**
*
*/
public interface CalculatorService {
/**
*
*
* @param input1
* @param input2
* @return
*/
public double add(double input1, double input2);
/**
*
*
* @param input1
* @param input2
* @return
*/
public double subtract(double input1, double input2);
/**
*
*
* @param input1
* @param input2
* @return
*/
public double multiply(double input1, double input2);
/**
*
*
* @param input1
* @param input2
* @return
*/
public double divide(double input1, double input2);
}
2단계 - MathApplication을 나타내는 JAVA 클래스를 생성합니다.
파일:MathApplication.java
/**
*
*/
public class MathApplication {
private CalculatorService calcService;
public void setCalculatorService(CalculatorService calcService) {
this.calcService = calcService;
}
public double add(double input1, double input2) {
return calcService.add(input1, input2);
}
public double subtract(double input1, double input2) {
return calcService.subtract(input1, input2);
}
public double multiply(double input1, double input2) {
return calcService.multiply(input1, input2);
}
public double divide(double input1, double input2) {
return calcService.divide(input1, input2);
}
}
단계 3 - MathApplication 클래스 테스트
MathApplication 클래스를 테스트하여 calculator Service의 시뮬레이션을 주입합니다.시뮬레이션은 Mockito에서 생성됩니다.
파일:MathApplicationTester.java
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import static org.mockito.Mockito.reset;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.junit.MockitoJUnitRunner;
// @RunWith attaches a runner with the test class to initialize the test data
@RunWith(MockitoJUnitRunner.class)
public class MathApplicationTester {
private MathApplication mathApplication;
private CalculatorService calcService;
@Before
public void setUp(){
mathApplication = new MathApplication();
calcService = mock(CalculatorService.class);
mathApplication.setCalculatorService(calcService);
}
@Test
public void testAddAndSubtract(){
//add the behavior to add numbers
when(calcService.add(20.0,10.0)).thenReturn(30.0);
//test the add functionality
Assert.assertEquals(mathApplication.add(20.0, 10.0),30.0,0);
//reset the mock
reset(calcService);
//test the add functionality after resetting the mock
Assert.assertEquals(mathApplication.add(20.0, 10.0),30.0,0);
}
}
단계 4 – 테스트 용례 실행
C:\> MockitoWORKSPACE에서TestRunner라는 자바 클래스 파일을 만들어서 테스트 용례를 실행합니다.
파일:TestRunner.java
import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.notification.Failure;
public class TestRunner {
public static void main(String[] args) {
Result result = JUnitCore.runClasses(MathApplicationTester.class);
for (Failure failure : result.getFailures()) {
System.out.println(failure.toString());
}
System.out.println(result.wasSuccessful());
}
}
단계 5 - 검증 결과
자바 컴파일러 클래스를 사용합니다. 아래와 같습니다.
C:\Mockito_WORKSPACE>javac CalculatorService.java MathApplication.
java MathApplicationTester.java TestRunner.java
TestRunner를 실행하여 결과를 확인합니다. -
C:\Mockito_WORKSPACE>java TestRunner
출력을 확인합니다.
testAddAndSubtract(MathApplicationTester): expected:<0.0> but was:<30.0>
false
번역:https://www.tutorialspoint.com/mockito/mockito_resetting_mock.htm
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Spring Boot + JUnit + Mockito로 단위 테스트하기Spring Boot에서 만든 REST API를 테스트합니다. 모의를 이용한 단위 테스트를 한다. 이번에는 예로서 Service(UserService.java) 테스트를 한다. Repository를 모형화하여 Ser...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.