2011-02-08 4 views
2

우리는 BDD를 사용하여 작은 자바 응용 프로그램을 구현할 것입니다. BDD는 apache.org의 POI를 사용하여 MS 엑셀 시트를 읽고 STDOUT에 기반한 텍스트를 인쇄합니다. 우리는 가장 쉬운 해결책은 각 BDD 테스트 케이스에 대해 test.xls를 작성하는 것임을 동의했습니다.BDD 테스트 케이스에서 조롱을 사용하는 것이 현명한 방법입니까?

POI 라이브러리 호출과 테스트 기대를 조롱해야한다는 또 다른 아이디어가있었습니다. 이 아이디어의 추론은 POI를 테스트하지 않고 모든 테스트 케이스에서 POI를 사용하는 데 낭비하는 테스트 시간을 원하지 않는다는 것입니다. 또한 다른 운영 체제에서는 파일 액세스가 까다로울 수 있습니다.

그런 경우 조롱을 사용하는 것이 현명한 방법입니까?

덕분에, 나는 조롱의 큰 팬 Zsolt

답변

2

을 본 적이 있지만, 어떤 경우에는 이해한다.

아파치 POI가 충분히 안정적이라고 생각하고 적절하게 스텁링 할 수 있습니다. 중요한 점은 POI와의 상호 작용을 테스트하는 것입니다. 당신이 그렇다면, 당신은 그것을 조롱 할 수 없습니다.

POI와의 상호 작용을 테스트하지 않았다고 말하면 계속하십시오.

+0

몇 가지 [스파이크] (http://www.extremeprogramming.org/rules/spike.html)를 만들었으며 많은 기대를하고있는 것 같습니다. 따라서 POI의 실제 구현에 대해 지금 – Zsolt

4

당신이 조롱 곳의 한계를 정의하고 당신은 확실히 회색하지 않는 경우, 그러나 나는 그 제안 지침을 조롱에 대한 두 가지 일반적인 진술 있다고 생각합니다 :

  1. Mock only interfaces that you own가.
  2. Mocks are not stubs. 제대로 그 느린과의 상호 작용을 나타내는 인터페이스를 개발하는 것이다 그래서이 느린 때문에 서브 시스템을 조롱 할 때 시간이 확실히있다 그래서 비록

, 적절한 조롱이, 건축 분리를 필요로 무언가로 그 속도가 느린 시스템을 식별한다 시스템을 만들고 거기에서 행동을 조롱하십시오. 그런 다음 느린 리소스와 실제로 상호 작용하여 해당 코드가 작동하는지 확인하는 인터페이스의 구현을 테스트하는 다른 테스트 범주를 갖게됩니다.

이것이 POI에 어떻게 적용되는지에 관해서는 추상화를 POI로 조롱하는 것이 타당할지 모르는가? 프로젝트의 범위에 따라 다릅니다. 필자가 장기적으로 프로젝트가 다른 스프레드 시트 솔루션을 필요로한다고 느낀다면 나는 그것을 할 것이다.

위의 첫 번째 링크는 그 접근법에 얼마나 많은 고통을 수반 할 수 있는지 분명하게 알려주기 때문에 실제 POI 클래스를 조롱하지는 않을 것입니다.

+0

감사합니다. @Yishai, 매우 도움이되었습니다. – Zsolt

관련 문제