FitNesse
.
UserGuide
.
FixtureGallery
.
FitLibraryFixtures
.
SequenceFixture
Edit Page:
''Previous page: [[!-DoFixture-!][<UserGuide.FixtureGallery.FitLibraryFixtures.DoFixture]] Next page: [[!-ArrayFixture-!][<UserGuide.FixtureGallery.FitLibraryFixtures.ArrayFixture]] Parent page: [[!-FitLibrary Fixtures-!][<UserGuide.FixtureGallery.FitLibraryFixtures]]'' !2 !-SequenceFixture-! '''!- SequenceFixture -!'''!- is very similar to -!'''!- DoFixture -!'''!- and has almost the same features — in fact the only difference between those two is the naming convention for methods. Instead of using odd cells to construct a method name, -!'''!- SequenceFixture -!'''!- takes the first cell in each row as the method name, and all other cells as arguments (if there are no keywords to modify the row functionality). All -!'''!- DoFixture -!'''!- keywords are supported in -!'''!- SequenceFixture -!'''!- too, as well as the flow mode (see -![[!-Flow Mode-!][<UserGuide.FixtureGallery.ImportantConcepts.FlowMode]]!- ) and domain object wrapping (see -![[!-System under test-!][<UserGuide.FixtureGallery.ImportantConcepts.SystemUnderTest]]!-). -! # section Table Format !3 !-Table Format-! !-The table format is the same as for -!'''!- DoFixture -!'''!- (see -![[!-DoFixture-!][<UserGuide.FixtureGallery.FitLibraryFixtures.DoFixture]]!-), with the difference in method naming. -! {{{ !-!-!|SequenceFixtureTest| |fill|10|x| |check|char at|4|x| |set list|A,B,C,D| |check|char at|2|C| }}} # section Fixture class !3 !-Fixture class-! !- The fixture class should extend -!'''!- fitlibrary.SequenceFixture -!'''!-. Declare public methods for all verifications and actions by taking the first cells as the method name, and using all other cells as arguments. -! # section Java Source Code !3 !-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); } } }}} # section .NET Source Code !3 !-.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]; } } } }}} # section Python Source Code !3 !-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] }}} # section Usage !3 !-Usage-! '''!- SequenceFixture -!'''!- has all the flexibility and power of -!'''!- DoFixture -!'''!-, but without the silly method names. It is most useful for more technical workflow tests, especially to directly map<UserGuide tables to existing business domain services (see -![[!-System under test-!][<UserGuide.FixtureGallery.ImportantConcepts.SystemUnderTest]]!-). -! ''Previous page: [[!-DoFixture-!][<UserGuide.FixtureGallery.FitLibraryFixtures.DoFixture]] Next page: [[!-ArrayFixture-!][<UserGuide.FixtureGallery.FitLibraryFixtures.ArrayFixture]] Parent page: [[!-FitLibrary Fixtures-!][<UserGuide.FixtureGallery.FitLibraryFixtures]]''
Hints:
Use alt+s (Windows) or control+s (Mac OS X) to save your changes. Or, tab from the text area to the "Save" button!
Grab the lower-right corner of the text area to increase its size (works with some browsers).