簡體   English   中英

我們如何在Akka Actor中實例化構造函數?

[英]How can we instantiate the constructor in Akka Actor?

我正在為我的akka​​演員類編寫單元測試。 一個字段在抽象父類中聲明,並在其構造函數中實例化。 在子類的測試用例執行期間,該字段顯示為空。 那么如何從測試類實例化該字段。 注意:我也在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);

    }
}

我不了解json,而且只能提供Java代碼幫助。 請看下面的代碼。 我的實例字段已正確初始化。 它們不為空。 因此,我對您所發布的代碼至少沒有任何問題。 需要訪問您的UntypedActor類。

class ClassA
{
    String x;
    public ClassA ()
    {
        x = "Java";

    }
}

abstract class ParentClass extends ClassA{
    protected String restTemplate;
    protected Integer objMapper;

    public ParentClass () {
        super();
        restTemplate = " Language";
        objMapper = 1;

    }
}

class ChildClass extends ParentClass{
    public ChildClass () {
        super();
    }

}

class HelloWorld 
{
    public static void main (String args[] )
    {

        ChildClass cc = new ChildClass ();
        System.out.println ( cc.x + cc.restTemplate + cc.objMapper );
    }
}

代碼的輸出符合預期

Java語言1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM