微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

模拟dao方法时出现NullpointerException

如何解决模拟dao方法时出现NullpointerException

我开始为Java-Spring-project编写测试类。我使用JUnit和Mockito 但是无论如何,对于下面的语句,我总是会收到NullpointerException。

assert((dao.getAllBusinessRules(sourceSystemIdentifier)).size()>=0);

这是我的主班


Public class   BusinessRulesDao   extends   SimpleDaoImpl‹BusinessRules>
{
static  f1naI    String   GET_BUSInesS_RULES=“se1ect className,fileName,sourceSystemldentifier from Business_Rules where sourceSystemIdentifier=?”;

public List<BusinessRules> getAllBusinessRules(String sourceSystemIdentifier) {
sqlParameter param = new sqlParameter(Types.VARCHAR,"sourcesystemldentifier",sourceSystemtIdentifier);
List<BusinessRules› list = null;
ArrayList<IDBParameter> params = new ArrayList<IDBParameter›();
params.add(param) ;
1ist = this.query(GET_BUSInesS_RULES,params);
return list;
}

这是我的测试班

public  class BusinessRulesDaoTest {
@Before
public void initMocks() {
MockitoAnnotations.initMocks(this);
}

BusinessRulesDao dao =Mockito.mock(BusinessRulesDao.class);
@Mock
BusinessRules rules;
SimpleDaoImpl<BusinessRules> impl=Mockito.mock(SimpleDaoImpl.class);

@Before
Public void setUp()
{
    this.rules=new BusinessRules();
    this.dao =new BusinessRulesDao();
    assert(this.dao!=null&&this.rules!=null);
}
@Test
Public void getAllBusinessRulestest()
{
String sourceSystemIdentifier=”ssi”;
String sql=”sql”;
ArrayList<IDBParameter> params=new ArrayList<IDBParameter>();
List<BusinessRules> list = new ArrayList<>();
When(dao.getAllBusinessRules(anyString()).thenReturn(list);
When(impl.query(sql,params)).thenReturn(list);
list.add(rules);
assert((dao.getAllBusinessRules(sourceSystemIdentifier)).size()>=0);
}
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。