**중복
**해서 발생되는 무언가(행위)를 고정시켜 **한 곳에서 관리
**하는 것이다.
Junit은 "유사한 개체 집합에 대해 작동하는 두 개 이상의 테스트가 있는경우” Fixture를 사용하라 권유한다.
public class MoneyFixtures {
public static Money createMoney(final int money) {
return new Money(money, "default");
}
public static Money createMoney(final String country) {
return new Money(10000, country);
}
public static Money createMoney(final int money, final String country) {
return new Money(money, country);
}
}
위처럼 미리 테스트에 필요한 객체를 만드는 메소드를 구성해놓고 가져다 사용하는 방식인 것 같다.
public class MoneyFixtureTest {
private Money m12CHF = MoneyFixtures.createMoney(12);
private Money m14CHF = MoneyFixtures.createMoney(14);
@Test
public void simpleAdd() {
Money expected = MoneyFixtures.createMoney(26);
Money result= m12CHF.add(m14CHF);
Assertions.assertThat(expected).isEqualTo(result);
}