gpt4 book ai didi

java - 测试在 Java 中实现接口(interface)的所有类

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:35:18 25 4
gpt4 key购买 nike

是否有任何东西(特别是针对 Java)可以让您自动测试接口(interface)的行为?例如,假设我有一堆针对 Comparable 接口(interface)的测试,它们应该适用于任何实现 Comparable 的东西。我想要的是能够在我的任何实现 Comparable 的类的测试装置中自动包含“ComparableTests”。如果这适用于通用接口(interface),则加分。

我知道 .NET 框架 mbUnit有类似的东西,当你使用像 TestNG 的生成器函数这样的东西时,你可以为 Comparable 设置一个测试夹具,并让生成器为你的每个实现 Comparable 的类创建一个实例。但我宁愿它是自动的,并且位于我的每个类的测试夹具中(因为我已经有了它们来测试该类的其他部分)。

说明:我绝对可以构建这样的东西。我在问是否有任何东西已经启用了这个。

最佳答案

根据你的最后一段,你正在尝试做的是将一些“额外方法”注入(inject)单元测试,因为你已经在测试一个特定的类。我不知道允许您根据类的层次结构附加测试的测试工具。

但是,根据您自己关于使用 TestNG 构建类似内容的建议,我认为您可能非常接近。您可以很好地合并一些基本代码,将您的类添加到“默认测试类”列表中,如果它们实现特定接口(interface),则依次测试这些类。

不过,对于一般情况,我认为您运气不好,因为 Java 类型系统是单向的,您只能(轻松地)找出一个类实现了哪些接口(interface),而不是相反。此外,问题是“在哪里停止寻找”:如果您有一个检查所有可比较 实现者的测试,您是否希望它检查String 的有效性还有一个,因为它在您的 Java 环境中?

关于java - 测试在 Java 中实现接口(interface)的所有类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/109072/

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