我有一个具有方法的类ProductRegister
private List products = new CopyOnWriteArrayList<>();
void registerProduct(Product p) {
products.add(p);
}
记住产品是私有的,没有吸气剂,并且是在类内部创建的,我该如何对它进行单元测试?我已经考虑过添加吸气剂,但这不是暴露我不希望别人知道的内部逻辑吗?
解决方法:
您要对产品ProductRegister而不是CopyOnWriteArrayList进行单元测试.因此,问题必须是如何测试方法registerProduct(Product)是否完成了应做的工作.您没有返回值,因此我将结合其他方法对其进行测试.也许您有另一种方法返回注册产品,以便可以断言True(< registeredProducts> .contains(product))吗?
编辑:这样,如果您更改实现,则无需更改JUnit测试(例如,使用另一个集合代替CopyOnWriteArrayList).
标签:unit-testing,java
来源: https://codeday.me/bug/20191111/2021905.html