간단한 프로그램 (장난감 게임)을위한 로직을 작성하기 시작했습니다. 선박 + 모듈 인 특정 선박 (설정이라고 함)이 있습니다. 우주선을 기반으로하는 빈 설정으로 시작한 다음 해당 설정에 모듈을 추가합니다. 선박에는 번호가 매겨진 모듈 위치 배열이 있습니다.TDD : 테스트 상태에 메서드 추가하기
var setup = new Setup(ship); // ship is a stub (IShip) defined someplace else
var module = new Mock<IModule>().Object;
setup.AddModule(module, 1); // 1 = which position
따라서 내 테스트 방법의 코드입니다. 이제이 코드에 대해 주장해야합니다. 글쎄, 게터 방법이 필요해?
Assert.AreEqual(module, setup.GetModule(1));
이
정말 바보 들릴지 나는 아무것도 걱정 해요,하지만 바보 같은 이유로 난 그냥 테스트가 통과 주장하는 방법을 추가로 걱정.TDM이 실제로 추진하고있는 설계 프로세스의 일부분입니까? 예를 들면 을 알고 있습니다. 테스트하고 싶기 때문에 AddModule 메서드가 필요합니다. 테스트하기 위해 GetModule 메서드가 필요하다는 사실은 단순히 TDD를 통해 내 디자인이 진화 한 것입니다.
내 코드에서 GetModule이 실제로 필요한지 알 수 없기 때문에 이런 종류의 냄새가 나나요?이 코드는 테스트에서만 사용됩니다.
예를 들어, 모듈을 추가하면 궁극적으로 다른 설정 (갑옷, 방패, 화력 등)에 영향을 미칩니다. 것은 복잡하게 될 것이고 간단한 테스트부터 시작하고 싶습니다. 그러나 궁극적으로, 그것들은 제가 관심있는 공공의 속성입니다 - 설정은 모듈의 목록이 아니라 그것의 통계에 의해 정의됩니다.
모듈을 추가하는 경우 반드시 그 모듈을 가져와야합니다. –