Groovy 單元測(cè)試

2022-07-21 11:32 更新

面向?qū)ο笙到y(tǒng)的基本單元是類。因此單元測(cè)試由一個(gè)類中的testig組成。所采用的方法是創(chuàng)建被測(cè)試類的對(duì)象,并使用它來(lái)檢查所選方法是否按預(yù)期執(zhí)行。不是每個(gè)方法都可以測(cè)試,因?yàn)椴⒉豢偸菧y(cè)試每一件事情。但是應(yīng)該對(duì)關(guān)鍵和關(guān)鍵方法進(jìn)行單元測(cè)試。

JUnit是一個(gè)開(kāi)源測(cè)試框架,是Java代碼自動(dòng)化單元測(cè)試的公認(rèn)行業(yè)標(biāo)準(zhǔn)。幸運(yùn)的是,JUnit框架可以很容易地用于測(cè)試Groovy類。所需要的只是擴(kuò)展作為標(biāo)準(zhǔn)Groovy環(huán)境一部分的GroovyTestCase類。 Groovy測(cè)試用例類基于Junit測(cè)試用例。

編寫一個(gè)簡(jiǎn)單的Junit測(cè)試用例

假設(shè)我們?cè)趹?yīng)用程序類文件中定義了以下類:

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

現(xiàn)在假設(shè)我們想為Student類寫一個(gè)測(cè)試用例。典型的測(cè)試用例如下所示。以下幾點(diǎn)需要注意以下代碼 -

  • 測(cè)試用例類擴(kuò)展了GroovyTestCase類
  • 我們使用assert語(yǔ)句來(lái)確保Display方法返回正確的字符串。
class StudentTest extends GroovyTestCase {
   void testDisplay() {
      def stud = new Student(name : 'Joe', ID : '1')
      def expected = 'Joe1'
      assertToString(stud.Display(), expected)
   }
}

Groovy測(cè)試套件

通常,隨著單元測(cè)試的數(shù)量增加,將難以一個(gè)接一個(gè)地繼續(xù)執(zhí)行所有測(cè)試用例。因此,Groovy提供了一個(gè)創(chuàng)建測(cè)試套件的工具,可以將所有測(cè)試用例封裝到一個(gè)邏輯單元中。以下代碼段顯示了如何實(shí)現(xiàn)這一點(diǎn)。應(yīng)該注意以下事情的代碼 -

  • GroovyTestSuite用于將所有測(cè)試用例封裝在一起。

  • 在下面的例子中,我們假設(shè)我們有兩個(gè)測(cè)試用例文件,一個(gè)叫StudentTest,另一個(gè)是EmployeeTest,它包含所有必要的測(cè)試。

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())
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)