相关疑难解决方法(0)

单元测试子类时如何在抽象类中注入变量?

我有一个抽象类BaseTemplate和多个扩展它的类.在其中一个具体的class(SmsTemplate extends BaseTemplate)中,我们有一个私有变量Gson.我们Gson在抽象类中也有相同的私有变量().

在测试具体类的单元时,抽象类中的方法是从具体类调用的.在我的单元测试中,我Whitebox.setInternalState(smsTemplateObj, gsonObj);用来将Gson对象注入到私有成员中SmsTemplate,BaseTemplate但是Gson只是在子类中注入.在抽象类中,它的NULL意思是不注入.以下是实施.

请问有人可以告诉如何在抽象类中注入Gson对象吗?

abstract class BaseTemplate{

    private Gson gson;//Here its not getting injected

    protected String getContent(Content content){
        return gson.toJson(content); // ERROR - gson here throws NPE as its not injected
    }
}

class SmsTemplate extends BaseTemplate{

    private Gson gson;//Here its getting injected

    public String processTemplate(Content content){
        String strContent = getContent(content);
        ...
        ...
        gson.fromJson(strContent, Template.class);
    }
}
Run Code Online (Sandbox Code Playgroud)

java junit unit-testing mockito

4
推荐指数
1
解决办法
2289
查看次数

标签 统计

java ×1

junit ×1

mockito ×1

unit-testing ×1