【发布时间】:2018-07-18 11:08:09
【问题描述】:
我有一个如下所示的课程:
@Service
@Transactional
public class BookServiceImpl implements BookService {
@Autowired
private BookRepository bookRepository;
public void removeOne(Long id) throws DataAccessException {
bookRepository.delete(id);
}
}
我的异常测试是这样的
@Rule
public final ExpectedException exception = ExpectedException.none();
@Test
public void removeOneThrowsNullPointerException() {
BookService foo = new BookServiceImpl();
exception.expect(NullPointerException.class);
foo.removeOne(1L);
}
现在这个测试通过了,但首先为什么必须实例化 BookService 类,通常如果是一个简单的单元测试,这个测试会通过,因为我们有一本 id 为 1L 但现在它为空的书,我已经阅读了关于 @Rule 的文章,到底发生了什么?这是在 removeOne() 方法中查找异常的正确测试吗?
【问题讨论】: