2016-03-28 62 views
0

当我试图注入Dao接口时,我得到一个空值。 当我编写测试用例时,代码示例。为什么我在嘲笑或注入对象时会得到空值。

@Mock 
private ServiceUriLocator serviceLocator; 
@Mock 
private SessionDao sessionDao; 
ActiveSession session; 
AccountData accountdata; 
@InjectMocks 
Account account 

当我使用方法里面像

@Test 
public void testActivate() 
{ 
    Response response=account.activate(accountdata). 
} 

private Accountdata accountdata(){ 
accountdata.setFirstName("Employee_name"); 
accountdata.LastName("Employee_Last_Name"); 
return accountdata; 
    } 

在上面的代码账户价值这上面的代码是零,这就是为什么我得到空指针异常。 任何人都可以验证为什么我得到null值来注入模拟值。

回答

0

使用模拟框架执行测试用例有很多因素。

  1. 是跑步者设置?你在执行哪一个跑步者? 它必须是MockitoJunitRunner,它有助于与Mocks一起运行
  2. when语句写在同一个模拟对象上吗? 这必须与相同的模拟对象匹配
  3. 输入字符串/数据是否与when语句匹配? 。 这必须是相同的输入

时(service.execute( '喜'))thenReturn();

是从

时(service.execute( '你好'))不同thenReturn();

  1. 哪里when写? setup - @Before级别或测试方法级别?

书面全球陈述适用于所有的测试方法,所以一定要小心,而你做的@Before方法when语句。

这些是一些调试点。

+0

这些是调试因素什么是空值? – Ankit

+0

@Ankit,这里的要点是检查所有这些步骤。考虑重新格式化您的问题以添加更多细节。 – VinayVeluri