CalculateFixture는 여러 input arguments에 대한 한개 이상의 계산 결과를 verify 할 때 사용합니다. ColumnFixture와 같은 일을 합니다. 테이블 포맷은 다르지만요. 이 CalculateFixture는 ColumnFixture 보다 코딩량을 줄여주는 효과가 있습니다.
Table Format
첫번째 줄은 fixture class 이름 입니다. 그 다음 두번째 줄에는 input parameter들의 이름을 넣습니다. 그 다음엔 빈 cell 이 오고 그 빈 셀 다음에 calculation 이름 (output value)이 옵니다. 이후 모든 줄들은 input parameter와 예상되는 outcomes들이 옵니다. 빈 셀은 이 줄들에서도 input과 output을 구분해 주는 역할을 합니다.
!|CalculateFixtureTest| |firstPart|secondPart||together| |Hello|World||Hello, World| |Houston|We Have a Problem||Houston, We Have a Problem|
Fixture Class
이 Fixture는 fitlibrary.CalculateFixture를 extend 합니다. 각 calculation 컬럼에 대해 하나이 메소드를 정의합니다. 이 메소드 이름은 모든 파라미터 이름들로 연결된 calculation 이름과 같아야 합니다. (아래 경우에는 togetherFirstPartSecondPart이 됨) 별도의 단어를 구분하기 위해 CamelCase nameing을 사용하실 수 있습니다.
Java Source Code
package info.fitnesse.fixturegallery; import fitlibrary.CalculateFixture; public class CalculateFixtureTest extends CalculateFixture{ public String togetherFirstPartSecondPart(String firstPart,String secondPart){ return firstPart+ ", "+secondPart; } }
.NET Source Code
using fitlibrary; using System; namespace info.fitnesse.fixturegallery { public class CalculateFixtureTest: CalculateFixture { public String TogetherFirstPartSecondPart(String firstPart,String secondPart) { return firstPart+ ", "+secondPart; } } }
Python Source Code
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)
Notes
이 메소드 이름들은 길어질 수 있습니다. 타이핑을 하다보면 에러를 발생시킬수 있습니다. 테이블을 작성하고 test를 실행시키세요. 처음에는 fail 할 겁니다.
Usage 같은 메소드나 같은 메소드 set들을 여러 input들을 가지고 실행하고 그 결과값을 확인하고 싶을 때 이 CalculateFixture를 사용합니다. 단지 메소드 실행만 필요하고 그 결과값은 별로 중요하지 않다면 혹은 method가 return 값이 없는 void 라면 SetUpFixture를 사용하시는게 더 좋을 겁니다. 프로퍼티들을 초기화 한 다음에 domain object에 대해 메소드를 실행하기 원한다면 ColumnFixture 가 더 유용할 겁니다. ColumnFIxture는 또한 calculation의 result를 테이블에서 확인하도록 하는 기능도 제공합니다. CalculateFixture는 빈 셀을 blank string으로 취급합니다. 그리고 이것을 result와 비교합니다. 그러니까 output cell 을 empty로 놓게 되면 columnFixture는 그 결과 값을 빈 셀에 출력하지만 CalculateFixture는 fail을 출력하게 될 겁니다.
'TDD Project' 카테고리의 다른 글
ConstraintFixture,SetFixture,SubsetFixture Tutorial - FitLibrary - (0) | 2013.08.22 |
---|---|
CombinationFixture Tutorial - FitLibrary - (0) | 2013.08.22 |
ArrayFixture Tutorial - FitLibrary - (0) | 2013.08.21 |
SequenceFixture Tutorial - FitLibrary - (0) | 2013.08.21 |
DoFixture Tutorial - 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 |
RowFixture Tutorial (Fitnesse) (0) | 2013.08.14 |
ActionFixture Tutorial (Fitnesse) (0) | 2013.08.14 |