【发布时间】:2015-03-17 13:07:54
【问题描述】:
这是我的测试课
@RunWith(MockitoJUnitRunner.class)
public class ServiceTest extends Service{
@Mock
EntityManager eman = Mockito.mock(EntityManager.class);
@Mock
Query query;
@InjectMocks
private Service service;
private static final String NAME = "name";
@Before
public void setUp() {
this.service=new Service();
}
@Test
public void firstMethodTest() {
Query query = mock(Query.class);
when(
eman.createNamedQuery(NAME)).thenReturn(query);
when
( query.setParameter("name", Type)).thenReturn(query);
when (query.getSingleResult()).thenReturn(type);
**service.getAllMethod(1, "string");**
assertSame(/*Something to compare */);
}
}
这是我的服务类方法
public getAllMethod(int ID, String string)
{
Query query=em
.createNamedQuery("name");
**query.setParameter("string", Type);**
type= query.getSingleResult();
}
当 service.getAllMethod(1, "String") 从 Mocked Object 调用时,我在 query.setParameter("name", Type) 处得到 NPE,因为我认为查询仍然是NULL。请假设我的服务工作正常。 提前致谢
调试时我检查了服务类中Query query的值,它的值为null。不知道如何解决这个问题。
【问题讨论】:
标签: java unit-testing jpa nullpointerexception mockito