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