gradle - 如何测试Junit5的Groovy?

标签 gradle groovy junit5

我有Groovy课

package com.steinko.groovy;
class Student { 
    String name;
    int ID;

    Student(name,ID){ 
        this.name = name;
        this.ID = ID;

     } 

   String Display() {
      return name +ID;
   }  
}

和Junit 5测试
package com.steinko.groovy;

import static org.junit.jupiter.api.Assertions.assertEquals​;
import org.junit.jupiter.api.Test;



class StudenTest {

    @Test
    void testDisplay() {
      def stud = new Student('Joe', 1)
      def expected = 'Joe1'
      assertEquals(stud.Display(), expected)
   }

 } 

我有一个Gradle build.gradle
apply plugin: 'groovy'


test {
    useJUnitPlatform()
}

repositories {
     jcenter()
}

dependencies {
    implementation localGroovy()

    testImplementation("org.junit.jupiter:junit-jupiter-api:5.5.0")
    testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.5.0")
}

当我执行gradle build时,我收到以下消息
com.steinko.groovy.StudenTest > testDisplay() FAILED
   groovy.lang.MissingMethodException: No signature of method: >com.steinko.groovy.StudenTest.assertEquals() is applicable for >argument types: (String, String) values: [Joe1, Joe1]
      at >org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:72)
      at >org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:80)
      at >org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:51)
      at >org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:156)
      at >org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:176)
      at >com.steinko.groovy.StudenTest.testDisplay(StudentTest.groovy:14)

测试结果
groovy.lang.MissingMethodException: No signature of method: com.steinko.groovy.StudenTest.assertEquals() is applicable for argument types: (String, String) values: [Joe1, Joe1]
    at >org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:72)
    at >org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:80)
    at >org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:51)
    at >org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:156)
    at >org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:176)
    at com.steinko.groovy.StudenTest.testDisplay(StudentTest.groovy:14)

如何解决错误?

最佳答案

在Groovy中,很少需要使用org.junit.jupiter.api.Assertions中的方法,因为Groovy的内置assert命令非常强大。

你试一试

assert stud.Display() == expected

并查看故障报告的质量。

关于gradle - 如何测试Junit5的Groovy?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56996161/

相关文章:

groovy - 使用 Groovy 脚本插件从 Jenkins 运行 Groovy 命令

java - 如何完全测试内部具有 System.getenv ("name") 操作的构造函数的覆盖率

java - Gradle 找不到 JUnit 平台

gradle - 如何使用依赖项作为文件对象?

java - 如何显示Gradle JavaExec任务的log4j输出?

gradle - 无法解析javax.inject:javax.inject:1.0-Gradle

Groovy 反向映射键

gradle - geb-gradle-saucelabs集成的驱动程序错误

spring - 如何测试 commonsMultipartFile 文件?

kotlin - 如何在 kotlin 中编写@Nested 测试类