草庐IT

hamcrest-junit

全部标签

java - 如何设置 Ant 'junit' 任务的工作目录?

我的Ant构建包括一个运行一些测试的junit任务。为了使测试正常进行,必须更改指定当前工作目录(user.dir)的属性值,但我不确定如何实现这一点。有问题的任务目前看起来像这样:请注意,我已尝试使用“dir”属性和“jvmarg”任务将工作目录更改为C:/workspace/obp-web。但是,当我在打开详细输出的情况下运行Ant时,我看到以下输出,这表明工作目录没有正确设置:[junit]dirattributeignoredifrunninginthesameVM[junit]UsingSystemproperties{java.runtime.name=Java(TM)SE

java - 在 Eclipse 和 Maven 中使用 JUnit 的类路径问题

在JUnit测试中,我使用此代码加载特定于测试的配置文件:InputStreamconfigFile=getClass().getResourceAsStream("config.xml");当我通过eclipse运行测试时,它要求xml文件与测试文件在同一个目录中。当我使用Maven构建项目时,它要求xml位于src/test/resources中,以便将其复制到target/test-classes中。我怎样才能使它们都只使用一个文件? 最佳答案 将config.xml文件放在src/test/resources下,并在Ecli

java - 有什么方法可以在生产代码中使用 Hamcrest 匹配器?

我想使用hamcrest作为在if语句中使用的糖框架,而不是在带有断言的单元测试中,而是在原始生产代码中。有点像if(isNotEmpty(name))return//....或if(isEqual(name,"John"))return//...就像AssertThat但不会抛出错误,只是返回boolean值。可能吗? 最佳答案 它只是Java,您可以选择用它做什么。Hamcresthomepage说:Providesalibraryofmatcherobjects(alsoknownasconstraintsorpredicat

java - 在 Java 生产代码中使用 Junit Assert API 可以吗

我想对我的方法参数进行空检查,比如参数不应该为空。可以在我的Java代码中使用这样的assertNotNull("Mapshouldnotbenull",filePaths);吗?我尽量避免if(filePaths==null){thrownewIllegalArgumentException("Mapscannotbenull");}只是为了让我的代码远离所有这些空检查。我知道我可以编写自己的Validator类并重载了notNull方法,但是是否存在一些现有的且易于使用的东西而不是重新发明轮子。我看到使用JUnitAssert的唯一缺点是它抛出AssertionError而不是Il

java - 我如何使用 JUnit 和 Hamcrest 比较 double ?

我正在使用JUnit和Hamcrest编写单元测试。我一直在使用以下方法比较double值:assertThat(result,is(0.5));但是,我现在需要比较计算值,但我不想与完整的double值进行比较。相反,我想比较接近度。我发现了一个名为IsCloseTo的类,但我不确定如何在assertThat中使用它,而且我在网上找不到任何示例。执行以下操作的正确语法是什么?//Ican'tdothisasIneedtoknowwhatmethods/classeswhateverIshouldbeusing//isCloseTodoesn'texist.assertThat(res

java - Junit 测试后的数据库清理

我必须使用Junit测试一些Thrift服务。当我作为Thrift客户端运行测试时,服务会修改服务器数据库。我找不到一个好的解决方案可以在每次测试运行后清理数据库。清理非常重要,尤其是因为当前从XML文件中读取的ID需要是唯一的。现在,我必须在运行测试后手动更改ID,以便下一组测试可以运行而不会在数据库中引发主键冲突。如果我可以在每次测试运行后清理数据库,那么问题就完全解决了,否则我将不得不考虑其他解决方案,例如生成随机ID并在需要ID的地方使用它们。编辑:我想强调一下,我正在测试一个正在写入数据库的服务,我没有直接访问数据库的权限。但由于服务是我们的,如果需要,我可以修改服务以提供任

java - 智能 : activate Maven profile when running Junit tests

我已经声明了一些特定于Maven配置文件的属性。我的pom.xml的一部分:releasetruefoo.xmlcibar.xml当我通过IntelliJIDEA2016启动Junit测试时,我在使用“ci”Maven配置文件时遇到了一些问题。我通过“Maven项目”面板激活我的配置文件,然后开始测试。问题是“my.properties.file”属性值等于“foo.xml”,而不是“bar.xml”。我对命令行没问题(我可以使用“-Pci”标志)。我如何告诉IntelliJ使用“ci”配置文件?谢谢。 最佳答案 您应该将配置文件添

java - 在 Eclipse 中的单独 JVM 中运行每个 JUnit 测试?

我有一个项目,在大约200个测试类中包含近500个单独的测试。其中一些测试在完成后并没有很好地拆除它们自己的状态,在Eclipse中,这会导致一些测试失败。通过Ant从命令行运行测试套件时,测试全部通过。我可以在Eclipse中以某种方式启用“测试隔离”吗?我不介意运行时间更长。从长远来看,我会清理行为不当的测试,但在短期内我想让测试正常工作。 最佳答案 如果您在Eclipse中使用Ant,则可以将JUnit任务设置为为每个测试派生一个新的JVM进程,从而提供隔离。http://ant.apache.org/manual/Tasks

java - 使用嵌入式 tomcat 服务器进行 JUnit 测试,如何为 http 和 https 连接器指定自动端口?

描述我做了一个JUnit测试,专注于尝试测试对SOAP网络服务的调用。我正在使用嵌入式tomcat服务器进行测试,以便使用模拟服务器运行我的测试。我同时使用http和https连接器。我需要为这两个连接器使用自动端口,因为测试是在Jenkins服务器上运行的,我不能只使用端口443或8443,因为它们已经被占用。我知道使用端口0作为标准端口会导致tomcat使用自动端口分配,但我无法设法将它与两个连接器一起使用。预期行为我也想为我的自定义ssl连接器使用自动端口分配。是否有可能以某种方式这样做?示例代码这是我的tomcat实例的代码:@Beforepublicvoidsetup()th

java - ClassNotFoundException : junit. framework.TestCase 无法被 org.eclipse.xtext.junit_2.4.3.v201309030823 找到

我对这个错误感到困惑:java.lang.NoClassDefFoundError:junit/framework/TestCaseatjava.lang.ClassLoader.defineClass1(NativeMethod)atjava.lang.ClassLoader.defineClass(ClassLoader.java:792)atorg.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.defineClass(DefaultClassLoader.java:188)atorg.eclipse.osgi.basea