gpt4 book ai didi

java - 没有 setter/getter 的单元测试私有(private) Collection

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:36:07 25 4
gpt4 key购买 nike

我有一个调用 ProductRegister 的类,它有一个方法

private List<Product> products = new CopyOnWriteArrayList<>();
void registerProduct(Product p) {
products.add(p);
}

请记住,产品是私有(private)的,没有 setter/getter ,并且是在类内部创建的,我该如何对其进行单元测试?我考虑过添加一个 getter,但这不是暴露了我不想让其他人知道的内部逻辑吗?

最佳答案

您想对您的类进行单元测试 ProductRegister , 而不是 CopyOnWriteArrayList .所以问题必须是如何测试方法是否为 registerProduct(Product)做它应该做的事。您没有返回值,所以我会结合另一种方法对其进行测试。也许您有另一种方法可以返回已注册的产品,这样您就可以 assertTrue( <registeredProducts>.contains(product))

edit:这样,如果您更改实现(例如,使用另一个集合而不是 CopyOnWriteArrayList),您就不必更改 JUnit 测试。

关于java - 没有 setter/getter 的单元测试私有(private) Collection ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42185938/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com