SequenceFixture는 DoFixture와 아주 유사합니다. 거의 기능이 같죠. 다른 점이 있다면 메소드에 대한 naming convention 입니다. 메소드 이름으로 홀수번째 cell 을 이용하는거 대신에 SequenceFixture는 메소드 이름으로 각 줄의 첫번째 cell 을 채택합니다. 그리고 다른 cell 들은 arguments가 되는거죠. (row functionality를 modify 해야 할 keyword가 없을 경우에요.) DoFixture에서 사용하는 모든 keyword들도 마찬가지로 SequenceFixture에서도 지원됩니다. flow mode(see Flow Mode )와 domain object wrapping(see System under test) 도 마찬가지구요.
Table Format
table format은 method naming 부분만 빼면은 DoFixture와 같습니다. (see DoFixture)
!|SequenceFixtureTest|
|fill|10|x|
|check|char at|4|x|
|set list|A,B,C,D|
|check|char at|2|C|
Fixture class
이 fixture class는 fitlibrary.SequenceFixture를 extend 해서 사용합니다. 모든
verification들과 action들에 대해 public method를 선언합니다. 이 때 첫번째 cell이 method
이름으로 사용됩니다. 그리고 다른 cell 들은 argument들이 됩니다.
Java Source Code
package info.fitnesse.fixturegallery;
import java.util.Arrays;
import fitlibrary.SequenceFixture;
public class SequenceFixtureTest extends SequenceFixture{
public String letters;
public void fill(int count,char c){
char[] arr=new char[count];
Arrays.fill(arr,c);
letters=new String(arr);
}
public void setList(char[] array){
letters=new String(array);
}
public char charAt(int position){
return letters.charAt(position);
}
}
.NET Source Code
using System;
namespace info.fitnesse.fixturegallery
{
public class SequenceFixtureTest : fitlibrary.SequenceFixture
{
private String contents;
public void Fill(int howmany, String what)
{
contents = "";
for (int i = 0; i < howmany; i++)
{
contents = contents + what;
}
}
public void SetList(String[] strings)
{
contents = "";
foreach (String s in strings)
{
contents = contents + s;
}
}
public char CharAt(int index)
{
return contents[index];
}
}
}
Python Source Code
from fitLib.SequenceFixture import SequenceFixture
from info.fitnesse.fixturegallery.typeadapter import buildListTypeAdapterFor
class SequenceFixtureTest(SequenceFixture):
_typeDict = {}
def __init__(self):
self.letters = ""
_typeDict["fill.types"] = [ None, "Integer", "Char" ]
def fill(self, count, c):
self.letters = c * count #< FILL: Repeact char count times.
# JAVA: public void setList(char[] array){
ARRAY_OF_CHAR_TYPE_ADAPTER = buildListTypeAdapterFor("Char")
_typeDict["setList.types"] = [ None, ARRAY_OF_CHAR_TYPE_ADAPTER ]
def setList(self, array):
self.letters = "".join(array) #< Concatenate array of chars to string.
_typeDict["charAt.types"] = [ "Char", "Integer" ]
def charAt(self, position):
return self.letters[position]
Usage
SequenceFixture는 DoFixture 가 가지고 있는 모든 flexibility와 기능을 모두 가지고 있습니다. 오직
method naming만 다릅니다. 이 fixture는 좀 더 technical 한 workflow test에 유용합니다.
'TDD Project' 카테고리의 다른 글
java memo 두 날짜 사이 일 수 구하기 (0) | 2013.09.05 |
---|---|
Hannah Anderson Dismisses Critics, Explains Relationship with James DiMaggio (0) | 2013.08.22 |
ConstraintFixture,SetFixture,SubsetFixture Tutorial - FitLibrary - (0) | 2013.08.22 |
CombinationFixture Tutorial - FitLibrary - (0) | 2013.08.22 |
ArrayFixture Tutorial - FitLibrary - (0) | 2013.08.21 |
DoFixture Tutorial - FitLibrary - (0) | 2013.08.17 |
CalculateFixture Tutorials - FitLibrary - (0) | 2013.08.17 |
SetUpFixture tutorial -FitLibrary- (0) | 2013.08.17 |
Import Fixture Tutorial & Summery (FitNesse) (0) | 2013.08.17 |
TableFixture Tutorial (FitNesse) (0) | 2013.08.14 |