타사 구성 요소에 속한 개체를 뱉어내는 클래스에서 TDD를 사용하려고합니다. 그러나 그 분명히에 조금 혼란 점점 오전 :타사 구성 요소 (TDD 포함)
는 개체를 분리하여 테스트해야) 단위 테스트와 함께b)는 타사 구성 요소가
가 수행 어댑터에 랩해야 이러한 규칙은 때 적용 써드 파티 컴포넌트에 속한 객체의 인스턴스를 반환하는 코드에 대한 테스트 작성 예를 들어, 여기에 지금까지 테스트는 다음과 같습니다
// Arrange
string foodXml = "<food><ingredient>Cabbages</ingredient>" +
"<ingredient>Bananas</ingredient></food>";
IFoodMixer mixer = new FoodMixer();
// Act
// Smoothie is the third-party component object
Smoothie urgh = mixer.Mix(foodXml);
// Assert
Assert.AreEquals("Cabbages", urgh.Ingredients[0].Name);
Assert.AreEquals("Bananas", urgh.Ingredients[1].Name);
사과이 질문은 (개념은 위의 약간을 보이는 경우 또는 바보!) 약간의 기본적인 보인다 경우 - 다만 두 가지 규칙 위의 적용 할 수있는 방법을 이해하는 데 어려움을 겪고 있어요 이러한 상황에서.
미리 조언 해 주셔서 감사합니다!
신속하고 자세한 답변을 보내 주셔서 감사합니다. 문제는 스무디 객체가 상당히 복잡하고 FoodMixer가 많은 기능 (Excel 파일 생성을위한 NPOI btw)을 사용하는 것입니다. 아직 포장해야합니까? 그것의 많은 것을 다시 쓰는 것을 포함 할 것 같은 느낌. –
이 경우 나는 당신이 달성하고자하는 것을 해결할 것이고, 그런 것들을하는 래퍼를 추가하고 그 안에 NPOI를 넣을 것이다. 일대일 대표단 일 필요는 없습니다. 검사로 테스트하기에 충분히 단순하거나 래퍼를 수동으로 테스트하고 변경할 필요가 없다면 래퍼 자체를 단위 테스트 할 필요가 없습니다 (단위 테스트는 테스트에 관한 것이 아니므로 쉽게 변경). – Lunivore
나는 귀하의 답변에 깊은 감사를 드리며 NPOI 용 어댑터를 사용하는 것이 올바른 접근 방법이 될 것입니다. XML이 궁극적으로 NPOI 개체의 많은 특성을 요점으로 지정한다면 엄청난 노력이 필요한 것 같습니다. 여기서 그것은 거의 그것의 연재 된 표현이 될 것이다. 따라서 먼저 객체의 인스턴스를 반환하고 테스트에서 속성을 확인한 다음 가능한 경우 작성/어댑터로 대체하십시오. –