草庐IT

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 - 在 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 - 模拟返回 Page 接口(interface)的方法

我有一个方法需要编写单元测试用例。该方法返回一个Page类型。如何模拟这个方法?方法:publicPagefindAllCompany(finalPageablepageable){returncompanyRepository.findAllByIsActiveTrue(pageable);}感谢帮助 最佳答案 您可以使用Mock响应或实际响应,然后使用when,例如:Pagecompanies=Mockito.mock(Page.class);Mockito.when(companyRepository.findAllByIsA

java - Spring 测试 DBunit 警告

我正在使用spring-test-dbunit,我在我的单元测试中收到警告消息:代码:@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(locations={"/context.xml"})@TestExecutionListeners({DependencyInjectionTestExecutionListener.class,DirtiesContextTestExecutionListener.class,TransactionalTestExecutionListener.class,DbUnitTest

java - 运行单元测试右键单击上下文项在 IntelliJ 12 中不可见

我下载了最新的intellij12版本,现在我没有看到右键单击上下文菜单项来为当前文件运行我的单元测试。那个选项现在在哪里? 最佳答案 刚刚在Maven项目中遇到了同样的问题-我忘记将测试类标记为公共(public),这立即解决了它。 关于java-运行单元测试右键单击上下文项在IntelliJ12中不可见,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/13779537/

java - 使用 RestTemplate 进行 RESTful 服务测试

在我的应用程序中,我有很多REST服务。我已经为所有服务编写了测试:org.springframework.web.client.RestTemplateREST-服务调用,例如看起来像这样:finalStringloginResponse=restTemplate.exchange("http://localhost:8080/api/v1/xy",HttpMethod.POST,httpEntity,String.class).getBody();然后我检查响应正文-一切正常。缺点是,必须启动应用程序才能调用REST服务。我现在的问题是如何在我的JUnit-@Test方法中做到这一

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

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

java - 写入数据到 System.in

在我们的应用程序中,我们希望用户在Thread中输入如下:BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));我想在我的单元测试中通过该部分,以便我可以恢复线程以执行其余代码。我如何从junit向System.in写入内容? 最佳答案 你想要做的是使用方法setIn()来自System.这将使您可以将数据从junit传递到System.in。 关于java-写入数据到System.in,我们在StackO