RowFixture
RowFixture 는 객체들의 다이나믹한 리스트를 테스트합니다. Expected list (FitNesse Table)와 실제 결과 리스트 (fixture code로부터 도출된)를 비교하게 됩니다. 그리고 추가되고나 missing 된 아이템들을 report 하게 되는 거죠.
Table Format
테이블의 첫번째 줄은 fixture class 이름 입니다. 두번째 줄은 리스트 내의 객체들 구조를 나타내구요. (verify 하기를 원하는 프로퍼티들이나 메소드들이 되겠죠.). 그 이후에 나오는 줄들은 배열에 있는 expected objects 들입니다.
!include -seamless SetUpFixture !|RowFixtureTest| |name|post code| |John Smith|SW4 66Z| |Michael Jordan|NE1 8AT|
Fixture class
이 fixture class는 fit.RowFixture 를 extend 해야 하고 아래 두개의 메소드들을 오버라이드 해야 합니다.
- getTargetClass — returns the Type or Class object representing the type of objects contained in the array.
- query — returns the actual array of objects to be verified.
Java Source Code
package info.fitnesse.fixturegallery; import info.fitnesse.fixturegallery.domain.Player; import fit.RowFixture; public class RowFixtureTest extends RowFixture{ public Class getTargetClass() { return Player.class; } public Object[] query() throws Exception { return Player.players.toArray(); } }
.NET Source Code
using System; using System.Collections.Generic; using System.Text; namespace info.fitnesse.fixturegallery { public class RowFixtureTest: fit.RowFixture { public override Type GetTargetClass() { return typeof(Player); } public override object[] Query() { return Player.players.ToArray(); } } }
Python Source Code
from fit.RowFixture import RowFixture from info.fitnesse.fixturegallery.domain.Player import Player class RowFixtureTest(RowFixture): def getTargetClass(self): return Player def query(self): return list(Player.players) #< Return copy of players
Notes
그 객체가 identity (primary key 같은)의 한 부분이 되는 프로퍼티들을 가지고 있다면 그 프로퍼티들의 리스트들은 부가 정보 리스트들의 왼쪽에 놓여지게 됩니다. 이렇게 하면 error report를 보기가 훨씬 쉬워집니다. Figure 1을 봐 보세요. 두 클래스 모두 에러는 같습니다. 하지만 그 컬럼의 순서로 인해 하나는 주요 항목에 대한 에러를 알아보기가 쉽도록 보여주고 다른 하나는 모든 줄이 missing 되 버리게 됩니다.
Figure 1: RowFixture maps rows to objects from left to right
query method 다른 추가적인 argument들을 pass 하도록 허용하지 않습니다. 좀 더 자세한 정보를 보시려면 Fixture Arguments를 보세요.
리스트의 element들의 순서는 상호 의존적이지 않습니다. RowFixture 는 이를 무시할 겁니다.
Usage
객체들의 리스트를 verify 하려면 Use RowFixture 를 사용해서 테스트 하세요. 혹은 리스트 내의 모든 리스트들에 method를 만들어서 실행하셔도 됩니다. (이러면 번거롭겠죠?)
element 의 순서가 중요할 때는 이 RowFixture를 사용하지 마세요. 대신 ArrayFixture를 사용하세요.
'TDD Project' 카테고리의 다른 글
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 |
ActionFixture Tutorial (Fitnesse) (0) | 2013.08.14 |
ColumnFixture Tutorial (Fitnesse) (0) | 2013.08.12 |
Spring Framework에서 jUnit 테스트 만들기 - Mockito 를 중심으로 - (0) | 2013.08.11 |
Fitnesse 사용법 간단 정리 (0) | 2013.08.07 |
Mockito로 테스트 하기 (0) | 2013.06.17 |