Для насмешек я предлагаю powermock. Благодаря автоматически созданным прокси-серверам он может делать практически все, что вы можете себе представить, начиная с создания mocks от интерфейсов, перехватывая завершение инициализации с подавлением статической инициализации (единственное, что избило меня, было возиться с насмешкой java.lang.Object
).
Скажем, SessionFacadeTest
- ваш набор тестов JUnit для SeesionFacade
.
import static org.powermock.api.easymock.PowerMock.createMock;
import static org.powermock.api.easymock.PowerMock.replayAll;
import static org.powermock.api.easymock.PowerMock.verifyAll;
import static org.easymock.EasyMock.anyObject;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
import javax.persistence.EntityManager;
@RunWith(PowerMockRunner.class)
@PrepareForTest({SessionFacade.class})
public class SessionFacadeTest {
@Test public void persistingObject() {
//set up stage
SessionFacade fixture = new SessionFacade();
EntityManager managerMock = createMock(EntityManager.class);
fixture.setManager(managerMock);
//record expected behavior
managerMock.persist(anyObject());
//testing stage
replayAll();
fixture.anyMethodThatCallPersist();
//asserting stage
verifyAll();
}
}
(Примечание: я написал его здесь, поэтому может даже не компилироваться, но должен дать вам идею).
Говорит страница не найдена, возможно, обновить свой ответ :) – cgew85 2016-01-11 13:58:13