Groovy - Teste de Unidade

A unidade fundamental de um sistema orientado a objetos é a classe. Portanto, o teste de unidade consiste em testar dentro de uma classe. A abordagem adotada é criar um objeto da classe em teste e usá-lo para verificar se os métodos selecionados são executados conforme o esperado. Nem todos os métodos podem ser testados, pois nem sempre é prático testar cada coisa. Mas o teste de unidade deve ser conduzido para métodos essenciais e críticos.

JUnit é uma estrutura de teste de código aberto que é o padrão de mercado aceito para o teste de unidade automatizado de código Java. Felizmente, a estrutura JUnit pode ser facilmente usada para testar classes Groovy. Tudo o que é necessário é estender a classe GroovyTestCase que faz parte do ambiente Groovy padrão. A classe de caso de teste Groovy é baseada no caso de teste Junit.

Escrevendo um Caso de Teste Simples Junit

Vamos supor que temos a seguinte classe definida em um arquivo de classe de aplicativo -

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;
   }  
}

A saída do programa acima é fornecida abaixo.

Joe1

E agora suponha que quiséssemos escrever um caso de teste para a classe Aluno. Um caso de teste típico seria semelhante ao mostrado abaixo. Os seguintes pontos devem ser observados sobre o código a seguir -

  • A classe de caso de teste estende a classe GroovyTestCase
  • Estamos usando a instrução assert para garantir que o método Display retorne a string correta.
class StudentTest extends GroovyTestCase {
   void testDisplay() {
      def stud = new Student(name : 'Joe', ID : '1')
      def expected = 'Joe1'
      assertToString(stud.Display(), expected)
   }
}

The Groovy Test Suite

Normalmente, à medida que o número de testes de unidade aumenta, fica difícil continuar executando todos os casos de teste um por um. Portanto, o Groovy fornece um recurso para criar um conjunto de testes que pode encapsular todos os casos de teste em uma unidade lógica. O seguinte codesnippet mostra como isso pode ser alcançado. As seguintes coisas devem ser observadas sobre o código -

  • O GroovyTestSuite é usado para encapsular todos os casos de teste em um.

  • No exemplo a seguir, estamos assumindo que temos dois arquivos de caso de teste, um chamado StudentTest e o outro é EmployeeTest que contém todos os testes necessários.

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())