(번역) 15-mockito 재설정 시뮬레이션

4209 단어 Mockito
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

좋은 웹페이지 즐겨찾기