草庐IT

cucumber-junit

全部标签

java - 在 IntelliJ IDEA 中使用 JUnit RunListener

我正在做一个项目,在运行每个JUnit测试之前我需要执行一些操作。使用可以添加到JUnit核心的RunListener解决了这个问题。项目组装是使用Maven完成的,所以我的pom文件中有以下几行:org.apache.maven.pluginsmaven-surefire-plugin2.12listenercc.redberry.core.GlobalRunListener所以,一切都可以使用:mvncleantest但是当使用IntelliJ(使用其内部测试运行器)开始测试时,我们的RunListener中编码的操作不会执行,因此无法使用IntelliJ基础设施执行测试。如我所见

java - cucumber-jvm 的全局 BeforeAll Hook ?

cucumber的ruby​​版本支持全局beforehook。放置在features/support目录中的*.rb文件显然只被调用一次,在任何和所有场景运行之前。参见https://github.com/cucumber/cucumber/wiki/Hooks#global-hooks这似乎是确保数据库(在测试期间以只读方式使用)在任何测试运行之前被填充(因此处于已知状态)的好方法。Cucumber的Java版本是否有类似的功能? 最佳答案 CucumberJVM本身没有这样的功能(请参阅https://github.com/c

java - 使用动态值覆盖 Junit 测试中的默认 Spring-Boot application.properties 设置

我想在测试中覆盖application.properties中定义的属性,但@TestPropertySource只允许提供预定义的值。我需要的是在随机端口N上启动服务器,然后将此端口传递给spring-boot应用程序。该端口必须是临时的,以允许同时在同一主机上运行多个测试。我不是指嵌入式http服务器(jetty),而是在测试开始时启动的一些不同的服务器(例如zookeeper)并且被测试的应用程序必须连接到它。实现此目标的最佳方法是什么?(这里有一个类似的问题,但答案没有提到临时端口的解决方案-OverridedefaultSpring-Bootapplication.prope

java - 如何使用 JUnit 在 Java 中测试具有 boolean 返回类型的方法

我正在编写一个JUnit测试用例,用于获取Line和Branch覆盖率的方法。被测方法调用另一个类型为Boolean的方法,我无法涵盖该部分,因为在Cobertura报告中,以下行显示为红色。if(getLoggingHandler().isGeneralDebugEnabled())待测方法:publicvoidlogMethodEndDebug(ILoggablel,Stringc,Stringm,Stringmsg,Object...args){if(getLoggingHandler().isGeneralDebugEnabled()){Stringcf=ComponentUt

java - 在 JUnit 测试中使用事务注释时数据未保存在数据库中

同事们,我一个多星期都解决不了一个Spring事务的问题。我已经创建了非常相似的帖子(Whydatawasn'tsavedwhenIuse@Transactionalannotation?),但无法解决其中的问题;当然,我考虑了给@FlorianSchaetz的建议。我恳请你帮助我。所以,我有测试类:@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(classes=AppConfig.class,loader=AnnotationConfigContextLoader.class)@Transactionalpub

java - 带有 H2 数据库的 JUnit : Unique index or primary key violation when adding multilingual services for multiple data

Hibernate在创建数据库的过程中,在oe_iv_student_lang表中为外键id_student添加了唯一键约束,因为我们要实现Serializable接口(interface)导致Hibernate不允许我们在其对应的子表中添加具有相同父外键的多行。我附上了代码片段以便更好地理解..学生类(class):importjavax.persistence.Column;importjavax.persistence.Entity;importjavax.persistence.GeneratedValue;importjavax.persistence.GenerationT

java - 在 JUnit 测试中使用 JMockit 多次模拟静态方法

我有一个包含静态方法的类,我目前正在使用JMockit对其进行模拟。说它看起来像:publicclassFoo{publicstaticFooValuegetValue(Objectsomething){...}publicstaticenumFooValue{X,Y,Z,...;}}我有另一个调用Foo静态方法的类(我们称它为MyClass);我正在尝试为此类编写测试用例。我的JUnit测试使用JMockit,看起来像这样:publicclassMyClassTestextendsTestCase{@NonStrictprivatefinalFoomock=null;@Testpub

java - JUnit 在 JAR 中运行测试

我正在使用纯JUnit4测试,并将它们编译到属于类路径的一些jar中。我想在我的类路径中运行所有测试。有办法吗?我的任务是这样的: 最佳答案 下面的示例假定JUnit测试使用后缀“Test”命名,例如“MyClassTest.java”,并且JUnit4jar文件位于属性lib.dir指向的库目录中。.对于每个包含编译测试的jar文件,一个ZipFileSet可用于在嵌套中选择测试类元素。JUnit4jar的路径包含在类路径中以确保使用正确的版本。 关于java-JUnit在JAR中运行

java - @RequestMapping 与 "params"在不同类中的相同 URL 导致 "IllegalStateException: Cannot map handler"在 JUnit 与 SpringJUnit4ClassRunner

我执行重构并将Controller拆分为2个Controller:@RequestMapping(value="/graph.htm",method=RequestMethod.POST,params="first")在第一个Controller中:@RequestMapping(value="/graph.htm",method=RequestMethod.POST,params="second")在第二个Controller中,所以这些注释位于不同的文件中。当我构建和使用项目时,一切都很好(我将inputHTML标记放在我的表单中,名称不同:first和second)。但是当我尝试

java - 如何使用 junit ExpectedException?

我正在尝试使用JUnit的ExpectedExceptions。我已经试过了:publicclassExpectedTest{@RulepublicExpectedExceptionthrown=ExpectedException.none();@Testpublicvoidtest(){thrown.expect(NullPointerException.class);thrownewNullPointerException();}}这引发了以下异常:java.lang.NoClassDefFoundError:org/hamcrest/TypeSafeMatcheratjava.l