我开始向大型 Java 代码库添加测试。我经常在我正在测试的会话 bean 中看到以下内容:
public OrderDTO getOrderDTO(Long id) {
Order o = (Order)entityManager.find(Order.class, id);
OrderDTO dto = new OrderDTO(o.getId(), o.getCurrency());
return dto;
}
编写单元测试来破坏此代码(发送空或不存在的 id)很容易。当我这样做时,团队的一半开发人员说:
我们不会对所有内容进行错误检查。如果你的参数是垃圾,你会很快知道的!
另一半说:
我们必须将 ifs 添加到 id,然后添加到 o,如果其中任何一个为 null,则返回 null。
单元测试的目的不是准确地找到这些问题吗?(是的,我在征求意见!)
是的,从 Long 切换到 long 将删除一个 if。