Fixture

**중복**해서 발생되는 무언가(행위)를 고정시켜 **한 곳에서 관리**하는 것이다.

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);
    }