草庐IT

Junit-Tests

全部标签

java - JUnit4 : Test a shutdown hook is called

我有一个添加关闭钩子(Hook)的方法。我需要测试(通过JUnit)钩子(Hook)中执行的代码是否被调用:publicvoidmyMethod(){Runtime.getRuntime().addShutdownHook(newThread(){@Overridepublicvoidrun(){...codetotest...}});}如何在单元测试中模拟关机? 最佳答案 我认为您无法测试它。相反,只需测试您的代码在调用时是否正确运行(通过单独对其进行单元测试)。然后,相信Java会在正确的时间调用您的代码。即将代码提取到扩展Th

java - JUnit 和 Surefire 并行测试 - ForkCount 和 ThreadCount

我正在使用Surefire插件在Selenium网格上运行Selenium测试来执行测试。就我的测试分割而言,我有几个类(class),其中一些有1个测试,一些有不止一个测试。所以在我的网格上我有30个chromeweb驱动程序,我想在所有类中并行执行所有测试。我已经阅读了如何使用我设置为的parallel参数来执行此操作:maven-surefire-plugin2.17${testSuite}allfalsefalse20${browser_type}然而,这似乎并不能填满我可用的所有Chrome网络驱动程序。如果我然后使用forkCount,例如:20true然后当测试执行第一次

java - 新的 JUnit 4.8.1 @Category 渲染测试套件是否几乎过时了?

给出的问题'HowtorunalltestsbelongingtoacertainCategory?'andtheanswer以下方法是否更适合测试组织?定义包含所有测试的主测试套件(例如使用ClasspathSuite)设计足够的一组JUnit类别(足够意味着每个理想的测试集合都可以通过一个或多个类别来识别)使每个测试符合相关类别根据主测试套件和类别集定义目标测试套件示例:确定速度(慢、快)、依赖性(模拟、数据库、集成等)、功能(填写适用类别)、领域(填写适用类别)等要求每个测试都正确地限定(标记)了一组相关的类别。使用ClasspathSuite创建主测试套件(所有测试都在类路径中

java - 在 JUnit 4 中重用测试实现?

我有一个接口(interface),例如:publicinterfaceThing{FrobResultfrob(FrobInput);}以及我正在尝试测试的该接口(interface)的几个实现(例如NormalThing、ImmutableThing、AsyncThing)。我的许多测试方法实际上是为了确保正确实现接口(interface),因此在每个Thing实现中都是重复的。在JUnit3中,一个常见的解决方案是创建一个基类(扩展TestCase),然后每个实现类都将其子类化。但这是JUnit4的正确方法吗?(我相信)偏好升序的可能替代方案:剪切并粘贴重复的测试方法。一点也不干

java - Pentaho水壶: how to set up tests for transformations/jobs?

我使用PentahoKettle已经有一段时间了,之前我所做的转换和工作(使用勺子)非常简单,从数据库加载,重命名等,输入到另一个数据库。但现在我一直在做一些更复杂的计算的转换,我现在想以某种方式进行测试。所以我想做的是:设置一些测试数据运行转换验证结果数据一个选择可能是制作一个Kettle测试作业来测试转换。但由于我的转换与Java项目相关,我更愿意从jUnit运行测试。所以我考虑过做一个jUnit测试:设置测试数据(使用dbunit)运行转换(从命令行使用kitchen.sh)验证结果数据(使用dbunit)然而,这种方法需要测试数据库,这些数据库并不总是可用(oracle等昂贵/

java - JUnit 测试未在 Eclipse 中运行

这是Eclipse编辑器的快照。您可以看到测试和JUnit选项卡。当我尝试运行测试时,它显示已终止。有人知道这里发生了什么吗? 最佳答案 在我的例子中,这是因为Eclipse开始使用JUnit5作为测试运行器。我通过转到运行配置并选择较旧的测试运行器解决了这个问题: 关于java-JUnit测试未在Eclipse中运行,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/1077397

java - Cobertura 如何与 JUnit 一起工作?

我看不懂Cobertura是怎么和JUnit合作的。据我了解,cobertura修改编译后的字节码并在此字节码中插入它自己的命令。好的。之后,我们运行Junit框架并为其运行我们的测试。谁能解释一下cobertura是在什么时候获得信息的,执行了哪些命令? 最佳答案 Cobertura使用ASM这是一个通用的字节码操作和分析框架。在每一行java代码中,都有3行添加到现有类中,以计算它生成的报告的内容。当Cobertura包含在您的类路径中并正确配置并且您执行单元测试时,它将生成一个名为cobertura.ser的数据文件,该文件用

java - 如何在 Eclipse 中使用 JUnit

我是Eclipse的长期用户,但在JUnit方面却是新手。我有很多java项目,我想开始围绕这些项目中的方法编写测试用例。我只是想知道为此目的设置Eclipse环境的最佳方法。假设我有一个典型的项目,在指定的包中有一个典型的src目录。我如何将测试用例附加到该项目。一些担忧:1.我不希望测试用例成为我在项目上创建的任何构建的一部分。2.我想引用测试套件中的类。是否要在我要测试的包下单独设置一个测试目录?我有单独的测试包吗?执行此操作的最佳方法是什么? 最佳答案 非常简单:将JUnitjar文件拖到或以其他方式放入您的lib文件夹中,

Java Junit 测试 HTTP POST 请求

我需要在不改变方法本身的情况下测试以下方法。该方法向服务器发出POST方法。但是我需要做一个独立于服务器的测试用例。我在将其重定向到本地文件之前测试了类似的方法。但为此,我将协议(protocol)作为文件,主机名作为本地主机,端口作为-1。我的问题是这个方法做了一个帖子并转换为HttpURLConnection和wr=newDataOutputStream(conn.getOutputStream());不会通过http处理本地txt文件。//构造函数publicHTTPConnector(Stringusr,Stringpwd,Stringprotocol,Stringhostna

java - JUnit assertion methods应该写成肯定的还是否定的?

我应该写吗assertTrue("用户登录",user.isLoggedIn());或者assertTrue("用户未登录",user.isLoggedIn());前者提供更好的源文件内部阅读:“我断言以下内容为真:用户已登录。”可以通过两种方式读取错误消息:java.lang.AssertionError:用户登录“断言用户已登录时出错”“错误是用户已登录。”JUnit文档没有提供明确的指南,但确实如此“{@linkAssertionError}的识别消息”,在这两种情况下,文本都标识了正在运行的测试。常见的用法是什么? 最佳答案