Arquillian действительно используется для интеграционного тестирования, а не модульного тестирования.
Несколько плохая практика - издеваться над Arquillian, именно по этой причине.Во многом это сводит на нет цель использования Arquillian.
Тем не менее, издеваться над Arquillian в описанной вами ситуации достаточно просто.Так как режим по умолчанию в Arquillian предназначен для обеспечения сборки микроархивов с помощью shrinkwrap, вы можете просто заменить EJB2 на фиктивную версию при создании архива.
Например:
@RunWith(Arquillian.class)
public class MyTest {
@Deployment
public static Archive<?> deployment() {
return ShrinkWrap.create(JavaArchive.class, "test.jar")
.addClass(com.real.EJB1.class)
.addClass(com.example.mock.EJB2.class)
;
}
// ..
}
Так какEJB1
не будет зависеть от фактического типа класса EJB2
, а только от его (простого) имени или интерфейса, вы можете просто поменять его при создании теста.