鍍金池/ 教程/ Java/ EasyMock calcService.serviceUsed()無調(diào)用示例
EasyMock改變調(diào)用
EasyMock期望調(diào)用
EasyMock第一應用程序
EasyMock createStrictMock
EasyMock anyTimes示例
EasyMock添加行為
EasyMock atLeastOnce示例
EasyMock calcService.serviceUsed()調(diào)用兩次示例
EasyMock環(huán)境安裝
EasyMock JUnit集成
EasyMock教程
EasyMock不使用EasyMock.Verify()示例
EasyMock calcService.serviceUsed()被調(diào)用一次示例
EasyMock calcService.serviceUsed()無調(diào)用示例
EasyMock不使用EasyMock.Replay()示例
EasyMock createNiceMock
EasyMock驗證行為
EasyMock使用EasyMock.Verify()示例
EasyMock times(min,max)示例
EasyMock EasyMock.Replay()示例
EasyMock EasyMockSupport
EasyMock createMock

EasyMock calcService.serviceUsed()無調(diào)用示例

以下是所采取的步驟。

創(chuàng)建一個接口CalculatorService,其目的是提供各種計算相關(guān)的功能。

CalculatorService.java
public interface CalculatorService {
   public double add(double input1, double input2);
   public double subtract(double input1, double input2);
   public double multiply(double input1, double input2);
   public double divide(double input1, double input2);
   public void serviceUsed();
}

創(chuàng)建一個Java類用來表示MathApplication。

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);
   }
}

讓我們來測試MathApplication類,通過它注入CalculatorService作一個模擬。Mock將由EasyMock創(chuàng)建。

MathApplicationTester.java MathApplicationTester.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 initialize the test data
@RunWith(EasyMockRunner.class)
public class MathApplicationTester {
	
   //@TestSubject annotation is used to identify class which is going to use the
   //mock object
   @TestSubject
   MathApplication mathApplication = new MathApplication();

   //@Mock annotation is used to create the mock object to be injected
   @Mock
   CalculatorService calcService;

   @Test
   public void testAdd(){
      //add the behavior of calc service to add two numbers
      EasyMock.expect(calcService.add(10.0,20.0)).andReturn(30.00);
      calcService.serviceUsed();
      EasyMock.expectLastCall().times(1);
      //activate the mock
      EasyMock.replay(calcService);	
		
      //test the add functionality
      Assert上一篇:EasyMock驗證行為下一篇:EasyMock createNiceMock