Groovy - 单元测试


面向对象系统的基本单位是类。因此,单元测试由类内的测试组成。采取的方法是创建被测试类的对象,并使用它来检查所选方法是否按预期执行。并非所有方法都可以测试,因为测试每件事并不总是切合实际的。但应对关键和关键方法进行单元测试。

JUnit 是一个开源测试框架,是 Java 代码自动化单元测试的公认行业标准。幸运的是,JUnit 框架可以轻松地用于测试 Groovy 类。所需要做的只是扩展作为标准 Groovy 环境一部分的 GroovyTestCase 类。Groovy 测试用例类基于 Junit 测试用例。

编写简单的 Junit 测试用例

假设我们在应用程序类文件中定义了以下类 -

class Example {
   static void main(String[] args) {
      Student mst = new Student();
      mst.name = "Joe";
      mst.ID = 1;
      println(mst.Display())
   } 
} 
 
public class Student {
   String name;
   int ID;
	
   String Display() {
      return name +ID;
   }  
}

上述程序的输出如下所示。

Joe1

现在假设我们想为 Student 类编写一个测试用例。典型的测试用例如下所示。以下代码需要注意以下几点 -

  • 测试用例类扩展了 GroovyTestCase 类
  • 我们使用断言语句来确保 Display 方法返回正确的字符串。
class StudentTest extends GroovyTestCase {
   void testDisplay() {
      def stud = new Student(name : 'Joe', ID : '1')
      def expected = 'Joe1'
      assertToString(stud.Display(), expected)
   }
}

Groovy 测试套件

通常,随着单元测试数量的增加,继续一一执行所有测试用例会变得困难。因此,Groovy 提供了一种创建测试套件的工具,可以将所有测试用例封装到一个逻辑单元中。以下代码片段展示了如何实现这一点。关于代码应注意以下事项 -

  • GroovyTestSuite 用于将所有测试用例封装成一个。

  • 在下面的示例中,我们假设有两个测试用例文件,一个名为StudentTest,另一个名为EmployeeTest,其中包含所有必要的测试。

import groovy.util.GroovyTestSuite 
import junit.framework.Test 
import junit.textui.TestRunner 

class AllTests { 
   static Test suite() { 
      def allTests = new GroovyTestSuite() 
      allTests.addTestSuite(StudentTest.class) 
      allTests.addTestSuite(EmployeeTest.class) 
      return allTests 
   } 
} 

TestRunner.run(AllTests.suite())