- EasyMock - Discussion
- EasyMock - Useful Resources
- EasyMock - Quick Guide
- EasyMock - createNiceMock
- EasyMock - createStrictMock
- EasyMock - createMock
- EasyMock - Exception Handling
- EasyMock - Varying Calls
- EasyMock - Expecting Calls
- EasyMock - Verifying Behavior
- EasyMock - Adding Behavior
- EasyMock - JUnit Integration
- EasyMock - First Application
- EasyMock - Environment Setup
- EasyMock - Overview
- EasyMock - Home
Selected Reading
- Who is Who
- Computer Glossary
- HR Interview Questions
- Effective Resume Writing
- Questions and Answers
- UPSC IAS Exams Notes
EasyMock - createNiceMock
EasyMock.createNiceMock() creates a mock and sets the default implementation of each method of the mock. If EasyMock.createMock() is used, then invoking the mock method throws assertion error.
Syntax
calcService = EasyMock.createNiceMock(CalculatorService.class);
Example
Step 1: Create an interface called CalculatorService to provide mathematical functions.
File: CalculatorService.java
pubpc interface CalculatorService { pubpc double add(double input1, double input2); pubpc double subtract(double input1, double input2); pubpc double multiply(double input1, double input2); pubpc double spanide(double input1, double input2); }
Step 2: Create a JAVA class to represent MathApppcation
File: MathApppcation.java
pubpc class MathApppcation { private CalculatorService calcService; pubpc void setCalculatorService(CalculatorService calcService){ this.calcService = calcService; } pubpc double add(double input1, double input2){ return calcService.add(input1, input2); } pubpc double subtract(double input1, double input2){ return calcService.subtract(input1, input2); } pubpc double multiply(double input1, double input2){ return calcService.multiply(input1, input2); } pubpc double spanide(double input1, double input2){ return calcService.spanide(input1, input2); } }
Step 3: Test the MathApppcation class
Let s test the MathApppcation class, by injecting in it a mock of calculatorService. Mock will be created by EasyMock.
Here we ve added one mock method call, add(), via expect(). However during testing, we ve called subtract() and other methods as well. When we create a mock object using EasyMock.createNiceMock(), the default implementation with default values are available.
File: MathApppcationTester.java
import org.easymock.EasyMock; import org.easymock.EasyMockRunner; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @RunWith(EasyMockRunner.class) pubpc class MathApppcationTester { private MathApppcation mathApppcation; private CalculatorService calcService; @Before pubpc void setUp(){ mathApppcation = new MathApppcation(); calcService = EasyMock.createNiceMock(CalculatorService.class); mathApppcation.setCalculatorService(calcService); } @Test pubpc void testCalcService(){ //add the behavior to add numbers EasyMock.expect(calcService.add(20.0,10.0)).andReturn(30.0); //activate the mock EasyMock.replay(calcService); //test the add functionapty Assert.assertEquals(mathApppcation.add(20.0, 10.0),30.0,0); //test the subtract functionapty Assert.assertEquals(mathApppcation.subtract(20.0, 10.0),0.0,0); //test the multiply functionapty Assert.assertEquals(mathApppcation.spanide(20.0, 10.0),0.0,0); //test the spanide functionapty Assert.assertEquals(mathApppcation.multiply(20.0, 10.0),0.0,0); //verify call to calcService is made or not EasyMock.verify(calcService); } }
Step 4: Execute test cases
Create a java class file named TestRunner inC:> EasyMock_WORKSPACE to execute Test case(s).
File: TestRunner.java
import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.notification.Failure;
pubpc class TestRunner {
pubpc static void main(String[] args) {
Result result = JUnitCore.runClasses(MathApppcationTester.class);
for (Failure failure : result.getFailures()) {
System.out.println(failure.toString());
}
System.out.println(result.wasSuccessful());
}
}
Step 5: Verify the Result
Compile the classes using javac compiler as follows −
C:EasyMock_WORKSPACE>javac MathApppcationTester.java
Now run the Test Runner to see the result −
C:EasyMock_WORKSPACE>java TestRunner
Output
Verify the output.
trueAdvertisements