(译) 06-Mockito 添加行为

x33g5p2x  于2021-12-28 转载在 其他  
字(2.7k)|赞(0)|评价(0)|浏览(238)

Mockito 使用when()的方法向模拟对象添加功能。查看下面的代码段。

//add the behavior of calc service to add two numbers
when(calcService.add(10.0,20.0)).thenReturn(30.00);

在这里, 我们已经指示 Mockito 给add方法calcService添加10和20的行为, 结果是返回30.00 的值。

在这个时间点, Mock记录的行为, 是一个工作的模拟对象。

//add the behavior of calc service to add two numbers
when(calcService.add(10.0,20.0)).thenReturn(30.00);

例如

步骤1−创建一个 CalculatorService 接口, 以提供数学函数

文件: CalculatorService. java

publicinterfaceCalculatorService{publicdoubleadd(doubleinput1,doubleinput2);publicdoublesubtract(doubleinput1,doubleinput2);publicdoublemultiply(doubleinput1,doubleinput2);publicdoubledivide(doubleinput1,doubleinput2);}

步骤2−创建一个 JAVA 类来表示 MathApplication

文件: MathApplication. java

publicclassMathApplication{privateCalculatorServicecalcService;publicvoidsetCalculatorService(CalculatorServicecalcService){this.calcService =calcService;}publicdoubleadd(doubleinput1,doubleinput2){returncalcService.add(input1,input2);}publicdoublesubtract(doubleinput1,doubleinput2){returncalcService.subtract(input1,input2);}publicdoublemultiply(doubleinput1,doubleinput2){returncalcService.multiply(input1,input2);}publicdoubledivide(doubleinput1,doubleinput2){returncalcService.divide(input1,input2);}}

步骤3−测试 MathApplication 类

让我们测试 MathApplication 类, 通过注入 calculatorService 的模拟。模拟将由 Mockito 创建。

文件: MathApplicationTester. java

importstaticorg.mockito.Mockito.when;importorg.junit.Assert;importorg.junit.Test;importorg.junit.runner.RunWith;importorg.mockito.InjectMocks;importorg.mockito.Mock;importorg.mockito.runners.MockitoJUnitRunner;// @RunWith attaches a runner with the test class to initialize the test data@RunWith(MockitoJUnitRunner.class)publicclassMathApplicationTester{//@InjectMocks annotation is used to create and inject the mock object@InjectMocksMathApplicationmathApplication =newMathApplication();//@Mock annotation is used to create the mock object to be injected@MockCalculatorServicecalcService;@TestpublicvoidtestAdd(){//add the behavior of calc service to add two numberswhen(calcService.add(10.0,20.0)).thenReturn(30.00);//test the add functionalityAssert.assertEquals(mathApplication.add(10.0,20.0),30.0,0);}}

步骤4−执行测试用例

在C: \ > Mockito_WORKSPACE中创建名为 TestRunner 的 java 类文件以执行测试用例。

文件: TestRunner. java

importorg.junit.runner.JUnitCore;importorg.junit.runner.Result;importorg.junit.runner.notification.Failure;publicclassTestRunner{publicstaticvoidmain(String[]args){Resultresult =JUnitCore.runClasses(MathApplicationTester.class);for(Failurefailure :result.getFailures()){System.out.println(failure.toString());}System.out.println(result.wasSuccessful());}}

步骤5−验证结果

使用javac编译器编译类, 如下所示−

C:\Mockito_WORKSPACE>javac CalculatorService.java MathApplication.
   java MathApplicationTester.java TestRunner.java

现在运行TestRunner查看结果

C:\Mockito_WORKSPACE>java TestRunner

验证输出。

true

翻译自:https://www.tutorialspoint.com/mockito/mockito_adding_behavior.htm

相关文章