当我尝试注入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 :(得分:0)
使用模拟框架执行测试用例时有很多因素。
MockitoJunitRunner
,这有助于与Mocks一起运行when
语句写在同一个模拟对象上?
这必须匹配相同的模拟对象when
语句匹配?
这必须是相同的输入当(service.execute( '喜'))thenReturn();
与
不同当(service.execute( '你好'))thenReturn();
when
写在哪里? setup - @Before
级别或测试方法级别?所写的全局声明适用于所有测试方法,因此在when
方法中制作@Before
语句时要小心。
这些是一些调试点。