Я пишу модульные тесты для своих классов акк-акков. поле объявляется в абстрактном родительском классе и создается внутри его конструктора. Во время выполнения тестового примера дочернего класса это поле показывает нуль. Итак, как создать экземпляр поля из тестового класса. Примечание: Я использую частичное Mocking также в классах testNG.Как мы можем создать экземпляр конструктора в Акке Аккор?
public abstract class ParentClass extends UntypedActor {
protected RestTemplate restTemplate;
protected ObjectMapper objMapper;
public ParentClass() {
super();
restTemplate = new RestTemplate();
objMapper = new ObjectMapper();
}
}
public class ChildClass extends ParentClass{
public ChildClass() {
super();
}
public void invoke(String json) throws Exception {
BeanClass bean = objMapper.readValue(json, Bean.class);
}
public String getJsonResponse(String json){
sysout("Get");
return "response";
}
}
public class ChildClassUnitTest {
@BeforeTest
public void setUp() throws Exception{
actorMock = PowerMock.createPartialMock(ChildClass.class,"getJsonResponse");
actorMock.getJsonResponse("req");
PowerMock.expectLastCall().andReturn("resp").anyTimes();
PowerMock.replay(actorMock);
}
@Test
public void testInvokePos() throws Exception{
ResponseClass response=actorMock.invoke("req");
System.out.println(response);
}
}
вы хотели бы поделиться здесь код? – SacJn
Привет SacJn Я загрузил фиктивный код. Взгляни, пожалуйста. –
Вы читали документы Акка об испытании актеров? вы можете создать экземпляр актера через реквизит, и поэтому вы используете TestActorRef в тестовом сценарии. Затем вы можете получить доступ к базовому Актору. Я не уверен, что насмехается будет работать так, как вы надеетесь в своем примере http://doc.akka.io/docs/akka/snapshot/java/testing.html – nickebbitt