gpt4 book ai didi

unit-testing - 单元测试时后门 java 访问的替代方法

转载 作者:行者123 更新时间:2023-12-04 05:27:51 24 4
gpt4 key购买 nike

我正在尝试使用多个私有(private)方法对一个类进行单元测试。每个私有(private)方法都可能相当广泛。

我可以将方法包范围化(这会导致警告),或者我可以使用下面的代码来测试它:

Method method = instance.getClass().getDeclaredMethod("methodName");
method.setAccessible(true);
Object object = method.invoke(instance);
assertNotNull(object);

这个类不是一个“上帝对象”,它的大部分方法都涉及它的所有领域。

关于如何更好地处理这个问题有什么建议吗?

最佳答案

测试私有(private)方法也可能是一种测试气味。

我的引用书是一本好书 http://www.manning.com/rainsberger/

  1. 您应该测试行为而不是方法:粒度有点不同。

    Example 1 : to test a Pile, how do you test push and pop without referencing each other? But testing the global behavior is possible. This reminds us that, even for testing, objects are the right granularity, not methods.

    Example 2 : when you want to test the interaction between several objects, testing method by method is clearly not correct, you want to test a global behavior.

  2. 如果一个方法不是公开的,它就不能被外界调用,它的行为也没有那么严格的定义。但最重要的是,如果您测试一个私有(private)方法,您以后将无法重构您的代码。所以应该只对公共(public)代码进行测试

关于unit-testing - 单元测试时后门 java 访问的替代方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1498695/

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