Trace: » flowmode » targetobject » writingtestsinexcel » databaseunittests » tablefixture » variaveisdemarcacao » argumentosparafixtures » webtest » actionfixture » calculatefixture
CalculateFixture
CalculateFixture é usada para verificar o resultado de um ou mais cálculos para diferentes combinações de argumentos de entrada. Ela faz o mesmo que a ColumnFixture com um formato de tabela diferente e com muito menos código.
Formato da Tabela
A primeira linha de uma tabela é o nome da classe da fixture. Depois disso, a segunda linha contém nomes para os parâmetros de entrada, seguindos de uma célula vazia e o nome dos cálculos (valores de saída). Todas as linhas depois desta especificam valores de entrada e saída para os cálculos. Uma célula vazia é novamente usada para separar colunas de entrada das de resultados esperados (valores de saída).
!|CalculateFixtureTest| |firstPart|secondPart||together| |Hello|World||Hello, World| |Houston|We Have a Problem||Houston, We Have a Problem|
Classe da Fixture
A classe da fixture deve estender fitlibrary.CalculateFixture. Ela deve declarar um método para cada coluna de cálculo. O nome do método deve ser igual ao nome do cálculo concatenado com todos os nomes dos parâmetros (neste caso togetherFirstPartSecondPart). Você pode usar CamelCase nos nomes para separar palavras.
Código-fonte em Java
package info.fitnesse.fixturegallery;
import fitlibrary.CalculateFixture;
public class CalculateFixtureTest extends CalculateFixture{
public String togetherFirstPartSecondPart(String firstPart,String secondPart){
return firstPart+ ", "+secondPart;
}
}
Código-fonte em .NET
using fitlibrary;
using System;
namespace info.fitnesse.fixturegallery
{
public class CalculateFixtureTest: CalculateFixture
{
public String TogetherFirstPartSecondPart(String firstPart,String secondPart)
{
return firstPart+ ", "+secondPart;
}
}
}
Código-fonte em Python
from fitLib.CalculateFixture import CalculateFixture
class CalculateFixtureTest(CalculateFixture):
_typeDict = {}
# JAVA: String togetherFirstPartSecondPart(String firstPart,String secondPart){
_typeDict["togetherFirstPartSecondPart.types"] = ["String", "String", "String"]
def togetherFirstPartSecondPart(self, firstPart, secondPart):
return "%s, %s" % (firstPart, secondPart)
Código-fonte em Smalltalk
'From VisualWorks®, 7.6 of March 3, 2008 on June 27, 2008 at 3:36:22 pm'!
Info.Fitnesse.Fixturegallery defineClass: #CalculateFixtureTest
superclass: #{Fitlibrary.CalculateFixture}
indexedType: #none
private: false
instanceVariableNames: ''
classInstanceVariableNames: ''
imports: ''
category: ''!
!Info.Fitnesse.Fixturegallery.CalculateFixtureTest methodsFor: 'type access'!
signatureFor: aSymbol
^MethodSignature with: String with: String returning: String! !
!Info.Fitnesse.Fixturegallery.CalculateFixtureTest methodsFor: 'accessing'!
togetherFirstPart: firstString secondPart: secondString
^firstString , ', ' , secondString! !
Observações
O nome do método pode ser muito longo e digitá-lo manualmente é sucetível a erros. Então ao invés disso, apenas escreva a tabela e execute o teste que irá falhar na primeira vez. FitNesse vai imprimir o nome do método que ele procurou, então você pode copiá-lo e colá-lo no seu código.
Utilização
Use CalculateFixture para executar o mesmo método para combinações diferentes de argumentos de entrada e verificar os resultados. Se você só quer executar um método e o resultado não é importante (ou o método é void), prefira usar SetUpFixture (veja SetUpFixture). Se você quer executar métodos num objeto de domínio depois de inicializar suas propriedades, a ColumnFixture (veja ColumnFixture) pode ser uma escolha melhor. A ColumnFixture também permite que você apenas imprima o resultado de cálculos, sem testá-los. CalculateFixture trata células vazias como uma string em branco, e a compara com o resultado, então o teste vai falhar se você deixar uma célula de saída vazia.
Página anterior: SetUpFixture Próxima página: DoFixture Página acima: Fixtures da FitLibrary
