EasyMock TestNG示例
时间:2020-02-23 14:41:19 来源:igfitidea点击:
在EasyMock教程中,我们将其与JUnit 5一起使用。
在本教程中,我们将学习如何将EasyMock与TestNG测试框架集成。
EasyMock TestNG示例
我们将从前面的教程中构建EasyMock TestNG示例。
首先,我们必须将TestNG依赖项添加到已经存在的EasyMock示例项目中。
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>${testng.version}</version>
<scope>test</scope>
</dependency>
这是一个简单的示例,其中我在模拟ArrayList并存根其行为。
然后,我使用TestNG断言编写一些测试用例。
package com.theitroad.easymock;
import static org.easymock.EasyMock.expect;
import static org.easymock.EasyMock.mock;
import static org.easymock.EasyMock.replay;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertTrue;
import java.util.ArrayList;
import org.testng.annotations.Test;
public class EasyMockMethodTestNGExample {
@Test
public void test() {
ArrayList<Integer> mockList = mock(ArrayList.class);
expect(mockList.add(10)).andReturn(true);
expect(mockList.add(20)).andReturn(true);
expect(mockList.size()).andReturn(2);
expect(mockList.get(0)).andReturn(10);
replay(mockList);
mockList.add(10);
mockList.add(20);
assertTrue(mockList.get(0) == 10);
assertEquals(mockList.size(), 2);
}
}
EasyMock TestNG注释示例
让我们看另一个示例,其中我将EasyMock注释与TestNG注释一起使用。
package com.theitroad.easymock;
import static org.easymock.EasyMock.*;
import static org.testng.Assert.assertEquals;
import org.easymock.EasyMockSupport;
import org.easymock.Mock;
import org.easymock.TestSubject;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import com.theitroad.utils.Calculator;
import com.theitroad.utils.MathUtils;
public class EasyMockAnnotationTestNGExample {
@Mock
private Calculator mockCalculator;
@TestSubject
private MathUtils mathUtils = new MathUtils(mockCalculator);
@BeforeMethod
public void setup() {
EasyMockSupport.injectMocks(this);
}
@Test
public void test() {
expect(mockCalculator.add(1, 1)).andReturn(2);
expect(mockCalculator.multiply(10, 10)).andReturn(100);
replay(mockCalculator);
assertEquals(mathUtils.add(1, 1), 2);
assertEquals(mathUtils.multiply(10, 10), 100);
}
}

