在我的单元测试中,我试图测试一个将域添加到存储库的服务,之后我会询问存储库是否存在新域。我的服务如下:
public class DomainService {
@Autowired
private DomainRepository domainRepository;
public Domain findOne(int id) {
Domain domain = domainRepository.findOne(1);
return domain;
}
}
我会为这项服务编写一个单元测试:
@RunWith(MockitoJUnitRunner.class)
public class DomainServiceTests {
@InjectMocks
private DomainService domainService;
@Mock
private DomainRepository domains;
@Test
public void Test() {
Domain domain1 = new Domain("PHP", "Scripting language", "http://www.google.com");
domains.save(domain1);
when(domainService.findOne(domain1.getId())).thenReturn(domain1);
}
}
这会在domain1.getId()
调用的最后一行抛出NullPointerException。这里有什么问题? domains.save(domain1)
没有出现错误,表明新域名已保存在存储库中?