Рубрики
Без рубрики

Пример тестирования EasyMock

Пример теста EasyMock, Учебник по тестированию EasyMock, пример макета EasyMock, пример аннотаций EasyMock, ожидание и возврат EasyMock, проверка кода примера

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