단위 테스트 사례 작성을위한 공장/초록 공장 디자인 패턴은 매우 효과적이지만 분명히 설명하는 자습서는 찾을 수 없었습니다. 누군가가 기존의 튜토리얼 날 지점 또는 나에게 여기에 몇 가지 의사 코드 및 설명 : GoF의에 따르면단위 테스트에서 공장/초록 팩토리 디자인 패턴 사용
5
A
답변
6
을 줄 수 있다면 그래서 매우 도움이 될 것이라고 추상 팩토리 패턴의 의도을 만들기위한 인터페이스를 제공하는 것입니다 컨실 트 클래스를 지정하지 않고 관련 객체 또는 종속 객체의 패밀리.
프레임 워크에서 추상 팩토리는 일반적으로 종속성 삽입을 사용하여 제공되며 이는 테스트하기 쉬운 코드를 작성하는 실제 키입니다. 의존성 삽입은 의존성이 클래스 내부에서 새로 생성되기보다는 생성자를 통해 "주입"된다는 것을 의미합니다.
public class EasyGameFactory implements GameFactory
{
Dice createDice()
{
return new LuckyDice();
}
}
public class NormalGameFactory implements GameFactory
{
Dice createDice()
{
return new RandomDice();
}
}
하는 단위 테스트를 위해 당신이 정말로 주사위 구현도를 사용하는 것을 선호 :
는 주사위 놀이의 쉽고 어려운 게임 (여기에 하나 개의 의존성, 주사위) 종속성을 생산하는 두 개의 공장을 사용한다고 가정 따라서 GameFactory의 특별한 구현을 작성하십시오 :public class CustomGameFactory implements GameFactory
{
private Dice mDice;
public CustomGameFactory(Dice dice)
{
mDice = dice;
}
Dice createDice()
{
return mDice;
}
}
이 팩토리는 프로덕션 코드 트리의 일부일 필요는 없습니다. 당신은 테스트 코드를 통해 주사위의 특별한 구현 공장 공급 : 어떤 구체적인 의존성 테스트 목적으로 주입 할 수있는이 방법으로
public class TestBackgammon
{
@Test public void shouldReturnDiceThrown()
{
SettableDice dice = new SettableDice();
Game game = new GameImpl(new CustomGameFactory(dice));
dice.setDice(new int[] {4, 5});
game.nextTurn();
assertArrayEquals(new int[] {4, 5}, game.diceThrown());
}
}
. 그러나 추상 팩토리 없이는 동일한 작업을 수행 할 수 있습니다. 즉, 팩토리를 주입하는 대신 종속성 자체를 주입 할 수 있습니다.
관련 문제
- 1. 추상 팩토리 디자인 패턴 C#
- 2. 단위 테스트에서 데이터베이스 사용
- 3. 단위 테스트에서 StructureMap 사용
- 4. 팩토리 및 추상 팩토리 패턴
- 5. 단위 테스트에서 grails.serverURL을 사용 하시겠습니까?
- 6. 단위 테스트에서 VirtualPathUtility.ToAbsolute를 사용 하시겠습니까?
- 7. 단위 테스트에서 단위 테스트를해야합니까?
- 8. FluentNHibernate 작업 단위/저장소 디자인 패턴 질문
- 9. 다른 매개 변수가있는 클래스의 팩토리 패턴 사용
- 10. MEF 및 팩토리 패턴
- 11. 초보자 : Java 팩토리 패턴
- 12. 소프트웨어 아키텍처 : 작업 디자인 패턴 토론의 단위
- 13. 리포지토리 디자인 패턴 및 데코레이터 디자인 패턴 사용
- 14. Microsoft 단위 테스트에서 구성 파일 사용
- 15. 단위 테스트에서 임의성 및/또는 반복 사용?
- 16. 팩토리 패턴 제품 저장
- 17. XPath 내의 팩토리 패턴
- 18. C# 팩토리 패턴
- 19. 외부 종속성이있는 팩토리 패턴
- 20. 팩토리 패턴 메서드 문제
- 21. 팩토리 메서드 패턴
- 22. 팩토리 패턴 질문
- 23. 간단한 단위 테스트에서 시작하여
- 24. 팩토리 디자인 패턴 : 팩토리가 인스턴스를 보유 할 수 있습니까?
- 25. IoC 및 추상에 따른 클래스 디자인 팩토리 패턴
- 26. 팩토리 패턴과 사용 용이성?
- 27. wcf 및 팩토리 \ 플러그인 패턴
- 28. 디자인 패턴 선택
- 29. 단위 테스트에서 HTTPResponse 조롱
- 30. 단위 테스트에서 java.util.logging.Logger 출력