gpt4 book ai didi

java - 为 java 友好/内部包类和内部/友好方法生成公共(public)访问器类

转载 作者:行者123 更新时间:2023-11-30 09:38:08 25 4
gpt4 key购买 nike

我有一个只有一个公共(public)外观的包,有两种方法,启动和停止。因为这个外观是用于类似 50+ 内部/友好类包的东西,所以我需要一种方法来直接测试其中的几个内部类。

我正在使用 Eclipse 和 JUnit。

反射可能是一种好方法,但为什么要自己编写所有这些反射代码,是否有生成包装器公共(public)类的好工具(如 .net visual studio 可以)?

其次,有人可以解释一下如何管理 JUnit 的双源代码树或推荐我阅读该主题中的一篇好文章吗?我看到了几篇博客文章,但更想看看这里的人是否有很好的解释/引用。

而且,最重要的是——要不要测试内部类,这不是我的问题,这是我的设计,也是我喜欢的工作方式。有些人认为你应该,有些人认为你不应该,所以请不要发布答案,例如:你应该只测试公开,这样问题就解决了。我在 stackoverflow 中进行了搜索,但找不到关于它的好帖子。

提前谢谢你,

詹姆斯.

最佳答案

您维护双源树的直觉是正确的。只需有两个源目录,其中具有相同的目录/包结构。编译到类似的独立输出目标,但在运行测试时将所有内容都放在类路径中。即使这些类甚至可能是不同的输出目录,它们相同的目录/包结构也会使它工作。如果你使用 Maven,这是标准的。使用该工具,源目录名称为 src/mainsrc/test,输出目录为 target/classes目标/测试类。 Maven 开箱即用地支持这一事实表明这种做法在 Java 社区中是多么标准,您应该放心地使用它。 (就此而言,我鼓励您使用 Maven,它会让您的生活更轻松。您可以将 Maven 与 Eclipse 一起使用,很多人都这样做。)

单元测试现在位于您的包中,您可以测试您想要的所有包保护类。我不同意那些说只测试 public 东西的人。事实上,TestNG 的作者塞德里克·博斯特 (Cedric Beust) 也是一位杰出人物,他认为 if it can break, it should be tested, and that includes private methods .我有单元测试私有(private)方法 with a little help from reflection .包保护的东西当然更容易测试。无论如何,我认为说只有 public 的东西应该被测试是一种宗教争论。

关于java - 为 java 友好/内部包类和内部/友好方法生成公共(public)访问器类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10255178/

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