A Galeria de Fixtures também está disponível como documento PDF e um wiki FitNesse online. Acesse http://gojko.net/fitnesse/fixturegallery para mais informações.
Página anterior: SequenceFixture Próxima página: CombinationFixture Página acima: Fixtures da FitLibrary

ArrayFixture

ArrayFixture foi construída como uma substituta para RowFixture. Elas trabalham bem parecidas, porém com duas diferenças principais:

  1. A ordem dos elementos é levado em consideração na ArrayFixture .
  2. ArrayFixture trabalha com coleções genéricas além de arrays.

Formato da Tabela

A primeira linha da tabela lista o nome da classe da fixture. A segunda linha descreve a estrutura dos elementos da coleção -- nomes de atributos, propriedades e métodos.

!include -seamless SetUpFixture

!|ArrayFixtureTest|
|name|post code|credit limit|
|John Smith|SW4 66Z|10|
|Michael Jordan|NE1 8AT|12|

Classe da Fixture

A classe da fixture deve estender fitlibrary.ArrayFixture. Ao invés de um método query, a ArrayFixture trabalha com uma propriedade interna chamada actualCollection na versão Java. Inicie esta coleção no construtor de sua fixture para os resultados atuais que devem ser comparados com a tabela. Na versão .NET, isto é feito passando a coleção para o construtor da classe base.

Código-fonte em Java

package info.fitnesse.fixturegallery;
import info.fitnesse.fixturegallery.domain.Player;
import fitlibrary.ArrayFixture;

public class ArrayFixtureTest extends ArrayFixture{
	public ArrayFixtureTest() {
		setActualCollection(Player.players);
	}
}

Código-fonte em .NET

using System;
using System.Collections.Generic;
using System.Text;

namespace info.fitnesse.fixturegallery
{
    public class ArrayFixtureTest: fitlibrary.ArrayFixture
    {
        public ArrayFixtureTest():base(Player.players)
        {
        }
    }
}

Código-fonte em Python

from fitLib.ArrayFixture import ArrayFixture
from info.fitnesse.fixturegallery.domain.Player import Player

class ArrayFixtureTest(ArrayFixture):
    def __init__(self):
        ArrayFixture.__init__(self)
        self.paramCollection = Player.players
        self.setActualCollection()

    def getTargetClass(self):
        return Player   #< TYPE-HINT: For ValueObject class.

Código-fonte em Smalltalk

'From VisualWorks®, 7.6 of March 3, 2008 on June 27, 2008 at 3:36:19 pm'!


Info.Fitnesse.Fixturegallery defineClass: #ArrayFixtureTest
	superclass: #{Fitlibrary.ArrayFixture}
	indexedType: #none
	private: false
	instanceVariableNames: ''
	classInstanceVariableNames: ''
	imports: ''
	category: ''!

!Info.Fitnesse.Fixturegallery.ArrayFixtureTest methodsFor: 'initialize-release'!

initialize
	super initialize.
	self actualCollection: Player players! !

Observações

Na versão Java, ArrayFixture trabalha corretamente com propriedades de JavaBeans também (de forma que se você possui um getter getCreditLimit, você pode chamar a coluna de credit limit.

Na versão .NET, propriedades, atributos e métodos são tratados da mesma forma, você pode usar qualquer um deles na tabela.

FitLibrary também possui uma SetFixture que ignora a ordem dos elementos e uma SubSetFixture que ignora elementos adicionais no resultado real. Estas duas fixtures são bem parecidas com a ArrayFixture no que trata de formato da tabela e estrutura da classe da fixture.

Utilização

Você pode usar a ArrayFixture ao invés da RowFixture quando a ordem dos elementos for importante ou para evitar a conversão de listas para arrays.

DoFixture encapsula converte métodos que retornam uma lista ou array em uma ArrayFixture, então você pode usar esta classe implicitamente com uma DoFixture para testas lista de objetos sem ter que escrever classes adicionais que estendem RowFixture . Para um exemplo, veja Flow Mode. Da mesma forma, métodos que retornam um conjunto (Set) de objetos são automaticamente convertidos para SetFixture.

Em Java, pode ser que faça mais sentido usar ArrayFixture para listas de objetos de domínio de negócios uma vez que esta fixture trabalha com getters de JavaBeans.

Página anterior: SequenceFixture Próxima página: CombinationFixture Página acima: Fixtures da FitLibrary


Personal Tools