Сначала сделайте тест способом Seam, который расширяется SeamTest
:
public class BeanTest extends SeamTest {
private SomeBean target;
@Test(groups = "integration")
public void checkIfAuthenticationWorks() {
target = (SomeBean) Component.getInstance(SomeBean.class);
// target get injected with the MockApplicationBean
assertEquals("token", target.authenticate(USERNAME, PASSWORD));
}
}
Затем создайте MockApplicationBean
с приоритетом MOCK
и поместите его в путь к классу теста, чтобы онбудет введен вместо действительного ApplicationBean
:
@Name("applicationBean")
@Install(precedence = MOCK)
public class MockApplicationBean extends ApplicationBean
{
// your mocked ApplicationBean
}
Наконец, обратите внимание, что target
должен быть создан как компонент Seam, а не как "new":
SomeBean target = (SomeBean) Component.getInstance(SomeBean.class);