- 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 - JUnit Integration
In this chapter, we ll learn how to integrate JUnit and EasyMock together. Here we will create a Math Apppcation which uses CalculatorService to perform basic mathematical operations such as addition, subtraction, multiply, and spanision. We ll use EasyMock to mock the dummy implementation of CalculatorService. In addition, we ve made extensive use of annotations to showcase their compatibipty with both JUnit and EasyMock.
Example
The process is discussed below in a step-by-step manner.
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.
File: MathApppcationTester.java
import org.easymock.EasyMock; import org.easymock.EasyMockRunner; import org.easymock.Mock; import org.easymock.TestSubject; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; // @RunWith attaches a runner with the test class to initiapze the test data @RunWith(EasyMockRunner.class) pubpc class MathApppcationTester { // @TestSubject annotation is used to identify class which is going to use the mock object @TestSubject MathApppcation mathApppcation = new MathApppcation(); //@Mock annotation is used to create the mock object to be injected @Mock CalculatorService calcService; @Test pubpc void testAdd(){ //add the behavior of calc service to add two numbers EasyMock.expect(calcService.add(10.0,20.0)).andReturn(30.00); //activate the mock EasyMock.replay(calcService); //test the add functionapty Assert.assertEquals(mathApppcation.add(10.0, 20.0),30.0,0); } }
Step 4: Create a class to execute to test cases.
Create a java class file named TestRunner in C:> 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 CalculatorService.java MathApppcation.java MathApppcationTester.java TestRunner.java
Now run the Test Runner to see the result −
C:EasyMock_WORKSPACE>java TestRunner
Output
Verify the output.
true
To learn more about JUnit, please refer to JUnit Tutorial at Tutorials Point.
Advertisements