Автор оригинала: Pankaj Kumar.
В учебнике EasyMock мы использовали его с JUnit 5 . В этом уроке мы узнаем, как интегрировать EasyMock с платформой тестирования TestNG.
Пример тестирования EasyMock
Мы создадим наш пример тестирования EasyMock из предыдущего руководства. Прежде всего, нам нужно будет добавить зависимость TestNG в уже существующий пример проекта EasyMock.
org.testng testng ${testng.version} test
Вот простой пример, где я издеваюсь над ArrayList и заглушаю его поведение. Затем я использую утверждения TestNG для написания некоторых тестовых примеров.
package com.journaldev.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() { ArrayListmockList = 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 с аннотациями для тестирования .
package com.journaldev.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.journaldev.utils.Calculator; import com.journaldev.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); } }
Резюме
EasyMock очень легко интегрируется с платформой тестирования, как и JUnit. На самом деле, очень легко переключаться между TestNG и JUnit во время работы с фреймворком насмешек EasyMock. Все, что нам нужно, – это изменить несколько операторов импорта для утверждений, жизненного цикла тестирования и методов обратного вызова.