Автор оригинала: 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() {
ArrayList 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 с аннотациями для тестирования .
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. Все, что нам нужно, – это изменить несколько операторов импорта для утверждений, жизненного цикла тестирования и методов обратного вызова.