模拟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 (将#修改为@)