草庐IT

Junit-Tests

全部标签

java - Junit @AfterClass(非静态)

Junit的@BeforeClass和@AfterClass必须声明为static。有一个很好的解决方法here对于@BeforeClass。我类有很多单元测试,只想初始化和清理一次。关于如何获得@AfterClass的解决方法的任何帮助?我想在不引入额外依赖项的情况下使用Junit。谢谢! 最佳答案 如果您想要类似于@BeforeClass中提到的解决方法,您可以跟踪已运行了多少测试,然后一旦所有测试都已运行,最终执行您的结束清理代码。publicclassMyTestClass{//...privatestaticinttota

java - 带有 SpringRunner.class 的 JUnit @Category 注释

我按照thisblogpost使用@Category注释设置了一个带有单独单元测试和集成测试的Maven构建。在大多数情况下,这是可行的:标记为@Category(IntegrationTest.class)的测试在integration-test阶段执行,所有未标记的测试在阶段执行>测试阶段。但是,看起来集成测试的上下文仍在(部分?)单元测试运行时创建,即使测试本身没有运行:[INFO]---maven-surefire-plugin:2.18.1:test(default-test)@bamboo---[INFO]Surefirereportdirectory:[removed][

java - junit 测试中的 spring-data-jpa bean 验证

在我最近的工作中,我使用spring-data-jpa来利用提供的存储库。当涉及到集成测试时,我无法配置(我假设)用于测试的spring上下文,因此bean验证在我的测试中不起作用。我知道我可以注入(inject)validator,并对我的注释进行单元测试,但事实并非如此。我正在编写集成测试,并希望测试有数据库支持的存储库。我准备了一个简单的项目来展示所有必要的项目文件。当我运行测试时,有2个失败了,我不知道为什么,hibernatevalidator出现在类路径上。Failedtests:insertWrongEmail(com.example.core.data.jpa.User

java - 使用 spring bean 的 JUnit 规则

我有一个加载测试spring应用程序上下文的测试类,现在我想创建一个junit规则,它将在mongodb中设置一些测试数据。为此,我创建了一个规则类。publicclassMongoRuleextendsExternalResource{privateMongoOperationsmongoOperations;privatefinalStringcollectionName;privatefinalStringfile;publicMongoRule(MongoOperationsmongoOperations,Stringfile,StringcollectionName){thi

java - 我怎样才能将这个使用 SpringJUnit4ClassRunner 的面向 'spring 3.1' 的 junit4 测试转换为基于 spring 的基于 junit3.8 的测试?

此代码使用Spring3.1和junit4以及spring-test3.1。我想使用和加载junit3.8.x来转换这段代码。这是由于遗留构建系统。我怎样才能做到这一点?大多数spring在线文档都围绕以下方法展开。我需要能够“加载Spring类(class)”。在这种情况下,我有一个XML文件rest-servlet.xml并且“服务”类被注释了。我希望能够在每次测试之前加载该rest-servletspring配置文件并设置spring。测试Activity日志:importorg.junit.Assert;importorg.junit.Before;importorg.juni

java - 断言复杂对象时的 Junit 最佳实践

最近我正在为遗留系统编写大量JUnit测试。我经常遇到这样的问题:断言复杂对象的最佳方式是什么?这是我当前的代码publicclassSomeParserTest{@TestpublicvoidtestParse()throwsException{finalSomeParsersomeParser=newSomeParser();someParser.parse("stringfromsomefile");finalListlistOfResults=someParser.getResults();assertThat(listOfResults,hasSize(5));assertR

java - 使用 Hibernate/Spring/JUnit 设置和拆除复杂的数据库状态

我有一个正在单元测试的类,它需要相当广泛的数据库设置才能运行各个测试方法。此设置需要很长时间:出于希望与手头问题无关的原因,我需要以编程方式而不是从SQL转储填充数据库。我遇到的问题是拆解。如何轻松回滚在数据库设置阶段所做的所有更改?我目前正在使用Hibernate+SpringTransactionalTesting支持,这样我的个人测试方法就包含在事务中。一个解决方案是在每个测试方法中进行数据库设置,这样数据库设置就会自动回滚。但是,测试方法将永远运行,因为每个方法都需要重新准备数据库。还有其他想法吗?基本上,我正在寻找一种方法来运行我的数据库设置,运行我的个人测试(每个测试都包含

java - 在 Eclipse 中并行运行 JUnit 参数化测试

我想知道在定义参数化测试时是否可以以编程方式并行运行JUnit测试。我们的想法是能够像在Eclipse中运行常规JUnit测试一样运行它们。我当前的代码类似于:@RunWith(Parameterized.class)publicclassJUnitDivideClassTests{@ParameterspublicstaticCollectiondata(){returnArrays.asList(newObject[][]{{12,3,4},{12,2,6},{12,4,3}});}privateintn;privateintd;privateintq;publicJUnitDiv

java - Spring JUnit 测试未加载完整的应用程序上下文

您好,我正在尝试使用springjunit测试用例...我需要加载完整的应用程序上下文。但是,junit测试不会初始化完整的应用程序上下文。测试类:@RunWith(SpringJUnit4ClassRunner.class)@SpringApplicationConfiguration(classes=Application.class)publicclassMongoDbRepositoryTest{@Value("${spring.datasource.url}")privateStringdatabaseUrl;@InjectprivateApplicationContexta

java - 如何在 JUnit 中比较两个 double 列表

在JUnit4测试中,我有一个方法getValues()返回List我想与引用列表进行比较的对象。到目前为止,我找到的最佳解决方案是使用org.hamcrest.collection.IsArray.hasItems和org.hamcrest.Matchers.closeTo像这样:assertThat(getValues(),hasItems(closeTo(0.2,EPSILON),closeTo(0.3,EPSILON)));这对于只返回少量值的测试来说很顺利。但如果测试返回更多值,这绝对不是最佳方法。我也试过下面的代码。垂头丧气到Matcher之前hasItems代码编译需要: