问题内容: 我正在尝试使用1.5 JRE运行JUnit测试,但收到错误消息: 当我切换到JRE 1.6(实际上是JDK,但这没关系,对吧?),一切都正常。 所以问题是: 当前的JUnit版本是否真的需要Java 6? 与Java 5兼容的最新JUnit版本是什么? 问题答案: 对几个类的抽查显示该jar文件是使用Java 5编译的,或者是使用设置了选项的Java 6编译器进行编译的,因此可以生成与
问题内容: 我相信大家都知道setUp(@Before)将在任何测试方法之前执行,而tearDown(@After)将在测试方法之后执行。 我们也知道Junit会为 每个测试方法 创建一个Test实例。 我的问题是,我们可以只将setUp方法的内容移至类Constructor并删除setUp方法吗?是否有任何特定理由保留setUp方法? 问题答案: 这篇(旧的)JUnit最佳实践文章将其描述如下:
问题内容: 我试过了: 但是,CRaSSHD仍会启动。尽管目前它不会损害测试,但我想在单元测试期间禁用不必要的模块,以加快速度并避免潜在的冲突。 问题答案: 最佳答案并不指向更简单,更灵活的解决方案。 只是放置一个 测试类上方的注释。这意味着其他测试不受当前测试的特殊情况的影响。如果存在影响大多数测试的配置,请考虑使用spring配置文件代替当前的最佳答案。 感谢@skirsch鼓励我将其从评论升
问题内容: JUnit框架包含2个类(显然是在不同的包中),每个类的方法似乎非常相似。有人可以解释为什么吗? 我要参考的类是:和。 问题答案: (JUnit 3的)旧方法是通过扩展标记测试类。那继承了它自己,并且您的测试类获得了以这种方式调用assert方法的能力。 从JUnit版本4开始,该框架用于标记测试。因此,您不再需要扩展。但这意味着,断言方法不可用。但是您可以静态导入新类。这就是为什么新
问题内容: 我已经使用Java,Selenium,Junit,Maven开发了一整套的自动化测试。 对于每个测试,它们都有一个或多个@Category批注,描述每个测试涵盖的软件区域。例如: 我正在尝试做的是找到一种方法来计算包含给定类别的测试数量。所有可能的类别都是文件夹中作为源列表的文件名。 我曾尝试构建一个shell脚本来进行字数统计,这似乎还可以,但是我认为还有更多的“内置”来处理@Cat
问题内容: JUnit的新手(实际上是JUnit 4)并遇到了执行测试的套件方式 这是我在新雇主浏览测试代码库时遇到的代码示例。在执行期间,我资助- 首先执行CreateNewProfile测试,然后执行EditProfile,这确实有意义,但随后会引入测试之间的依赖关系。 几个月以来,我一直在遵循非依赖性测试机制(尽管我以前使用的是TestNG而不是JUnit),并且希望EditProfile也
问题内容: 我有两种逻辑上的测试类别:普通功能单元测试(通过/失败)和仅用于度量/诊断的基准性能测试。 目前,我将所有测试方法都放在一个类中,称为: 然后我有一个定义为 和一个 这样我就可以将单元测试与性能测试分开运行(我认为没有必要包含Ant代码)。 这意味着我总共有四个类(MyTests,PerformanceTest,PerformanceTestSuite和UnitTestSuite)。我
问题内容: 当我运行一个完整的测试套件时,如果导致测试失败的异常出现在我的(SLF4J-)日志中,将很有帮助。实现此目的的最佳方法是什么? 我想要什么 是为我处理异常日志记录的junit4规则。代码 当然不起作用,因为我只能从try块中捕获异常。是否有解决方法以某种类似的简单通用方法实现? 顺便说一句,我现在在做什么 在创建异常时记录异常。但是最好在调用者和库之间的接口上记录异常,所以在我的情况下
问题内容: 在eclipse中,使用JUnit 4,您可以右键单击项目或包,然后单击“以JUnit Test身份运行”,它将运行该组中的所有JUnit测试。有没有办法在代码中执行相同的操作? 问题答案: 您可以在junit中使用诸如JUnitCore之类的软件包,如下所示:
问题内容: 我想用JUnit测试来验证Java中集合的排序算法。如果我在集合中输入“ B”,“ C”,“ A”并希望对其进行排序(例如,按字母顺序排列),那么使用JUnit进行测试的正确方法是什么? 我实现了Comparable接口,并希望确保排序工作正常。 我想这个问题可以从Java或JUnit扩展到任何语言的常规测试。 问题答案: 我将按 预期的 顺序创建另一个具有值的集合,然后仅检查结果是否
问题内容: 我在源代码中使用了BufferedWriter对象 我正在尝试在我的测试用例中模拟它,如下所示: 但是,BufferedWriter不会被嘲笑,它总是进入实际的实现中。是因为它不能模拟BufferedWriter,因为它是一个具体的类吗?这是否意味着无法模拟任何java.io类?有没有办法模拟它,或者我做错了什么? 问题答案: ,你可以嘲笑的Java IO类(包括它们的构造,所以未来的
问题内容: 我已经写了某些没有主要方法的代码。但是我想知道代码是否有任何问题。基本上,我可以使用Eclipse中的JUnit测试用例来实现(我使用的是Linux)。但是我必须在目前没有Eclipse的Windows中进行测试。因此,我可以选择在cmd中进行操作(如果可能的话)。在cmd中等效的JUnit测试(Eclipse)是什么? 问题答案: 查看此页面:http : //junit.sourc
问题内容: 我有应该测试的方法。代码(当然,某些部分被剪切): 问题:如何在使用Mockito和JUnit的方法中检查if语句?我想将相等的日期传递给方法,然后检查我的if语句是否正常工作。 问题答案: 如果您确实想要 纯 单元测试而不是集成测试,则可以依靠注释来模拟服务并将模拟插入到的实例中。 然后,您可以提出3个测试: 日期正确无误的一项测试, 日期正确但相等的另一个 最后一个日期不正确的日期
问题内容: 使用Gradle执行JUnit 5测试时,我找不到如何设置系统属性。标准任务可以配置如下: 但是,任务似乎没有这种选择。 问题答案: 更新: 请注意,JUnit团队开发的JUnit Platform 1.2中已弃用,而在1.3中不再使用。请在Gradle 4.6或更高版本中切换到Gradle的标准任务。详细信息在这里。 正如我在这里提到的,如果您仍然使用过时的话,可以像这样设置系统属性
问题内容: 我正在使用JUnit 4.12。断言方法本质上不是通用的。例如,assertEquals方法看起来像: 为什么不是这样? 我觉得需要通用方法声明来更好地进行编译时检查和IDE自动完成。 问题答案: 具有这样的通用方法: 没有避免避免比较不同类型的类型安全:您可以将任何内容传递给此方法,因为它会退化到其上限: 而且也不能使用任何方法和未上找到。因此,基本上就是。 这样,添加泛型只会使实现