草庐IT

hamcrest-junit

全部标签

java - JUnit @Test 预期的注释不起作用

我有以下测试:@Test(expected=IllegalStateException.class)publicvoidtestKey(){intkey=1;this.finder(key);}但是JUnit报告说,测试失败,尽管它抛出了-正如预期的那样-IllegalStateException。我必须配置其他东西才能运行吗?我现在运行测试@RunWith(Suite.class)@SuiteClasses(Test.class)publicclassTestSuite{}喜欢thisquestion,但仍然没有得到想要的结果。当我删除test前缀时,我仍然收到错误消息。我得说我使用

java - Junit + getResourceAsStream 返回 Null

不确定这怎么可能。我重新阅读了getResourceAsStream,它总是返回null。InputStreamsource=this.getClass().getResourceAsStream("test.xml");Finder中的test.java旁边(使用OSX和Eclipse)是test.xml我可以在TextWrangler中打开它,并将其视为现有数据。这是一个Junit测试,如果它有什么不同的话。我去查看了我们系统上现有的Junit测试,并以与工作示例完全相同的方式使用它(如文件所在的位置和代码本身)。我认为getClass()无法返回正确的路径会有什么细微差别?

java - JUnit 预期标记未按预期工作

我在Eclipse中有以下测试用例,使用拒绝通过的JUnit4。可能出了什么问题?@Test(expected=IllegalArgumentException.class)publicvoidtestIAE(){thrownewIllegalArgumentException();}当尝试使用预期标记测试我自己的代码不起作用时,出现了这个确切的测试用例。我想看看JUnit能否通过最基本的测试。没有。我还按预期使用自定义异常进行了测试,但没有运气。截图: 最佳答案 问题在于您的AnnounceThreadTest扩展了TestCas

java - 如何通过 Gradle 测试任务在我的 JUnit 上启用调试

我在尝试通过Gradle测试任务运行JUnit测试时遇到了麻烦。当我直接使用RunAs->JUnit测试在eclipse中运行测试时,一切正常,测试成功。但是通过测试任务,测试总是失败。我的资源txt文件的编码可能有些问题。所以我想在使用Gradle启动测试时启用调试在build.gradle中,我的测试任务现在看起来像:test{tasks.withType(Compile){options.encoding='UTF-8'}}那么我应该怎么做才能启用调试?我从Eclipse的Gradle面板而不是控制台运行Gradle任务。谢谢! 最佳答案

java - JUnit 4 预期异常类型

我正在尝试对其他人编写的代码进行JUnit测试,但我不知道如何测试异常,因为异常似乎缺少类型。publicPirate(Stringname,intinitialGold)throwsException{if(initialGold=0");this.name=name;this.numGold=initialGold;this.health=Pirate.DEFAULT_HEALTH;this.isCursed=false;}我的JUnit代码片段:@TestpublicstaticvoidconstructorTest()throwsException{rodgers=newPir

java - junit数组不等于测试

我正在尝试编写一个测试用例,我的场景是两个字节数组应该不等于。我可以用junit做到这一点吗?或者我必须使用像Hamcrest这样的外部设备吗?Icouldn'tchangethecodeinthisanswertodothejob请提供sample。 最佳答案 你可以使用assertFalse(Arrays.equals(array1,array2));如果您想检查它们是否相等,我会改用以下内容。assertEquals(Arrays.toString(array1),Arrays.toString(array2));因为这会产生

java - JUnit 断言 : make the assertion between floats

我需要比较两个值:一个是字符串,另一个是float所以我将字符串转换为float,然后尝试调用assertEquals(val1,val2)但这未经授权,我猜assertEquals不接受float作为参数。在这种情况下,我的解决方案是什么? 最佳答案 您必须为Floats的断言提供一个增量:Assert.assertEquals(expected,actual,delta)虽然delta是预期和实际之间的最大差异(delta),但两个数字仍被视为相等。Assert.assertEquals(0.0012f,0.0014f,0.00

java - JUnit:@Before 仅用于某些测试方法?

我有一些常见的设置代码,我已将它们分解为标有@Before的方法。但是,不必为每个测试都运行所有这些代码。有没有办法标记它,以便@Before方法只在某些测试之前运行? 最佳答案 只需将不需要设置代码的测试移到单独的测试类中即可。如果您有其他一些测试通用的代码有助于保留,请将其移到帮助程序类中。 关于java-JUnit:@Before仅用于某些测试方法?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.co

java - 我们可以使用 JUNIT 进行自动化集成测试吗?

如何实现自动化integrationtesting?我使用JUnit进行其中一些测试。这是解决方案之一还是完全错误?你有什么建议? 最佳答案 我使用JUnit进行了很多集成测试。当然,集成测试可能意味着许多不同的东西。对于更多的系统级集成测试,我更喜欢让脚本从外部驱动我的测试过程。对于使用http和数据库的应用程序,这是一种非常适合我的方法,我想验证整个堆栈:在内存模式中使用Hypersonic或H2作为数据库的替代品(这对ORM最有效)在@BeforeSuite或等效项中初始化数据库(同样:使用ORM最简单)使用Jetty启动进程

java - 在方法级别(不是类级别)指定 junit 4 测试的顺序

我知道这是不好的做法,但必须这样做,否则我需要切换到testng。有没有一种类似于JUnit3的testSuite的方法来指定要在一个类中运行的测试的顺序? 最佳答案 如果您确定您真的想要这样做:可能有更好的方法,但这是我能想到的全部...JUnit4有一个注解:@RunWith,它允许您覆盖测试的默认Runner。在您的情况下,您可能希望创建BlockJunit4ClassRunner的特殊子类,并覆盖computeTestMethods()以按照您希望它们执行的顺序返回测试。例如,假设我想按字母倒序执行我的测试:publiccl