TDD에 관한 수많은 스크린 캐스트를 읽은 적이 있지만 아직 실제 프로젝트에서 사용하는 데 어려움을 겪고 있습니다. 내 주요 문제는 어디에서 시작할 것인지, 어떤 테스트가 첫 번째 테스트가되어야하는지 모른다는 것입니다. 외부 시스템의 메소드 (예 : 통지)를 호출하는 클라이언트 라이브러리를 작성해야한다고 가정합니다. 실제 프로젝트에서 TDD 시작점을 선택하는 방법은 무엇입니까?
NotificationClient client = new NotificationClient("abcd1234"); // client ID
Response code = client.notifyOnEvent(Event.LIMIT_REACHED, 100); // some params of call
이 장면 뒤에 일부 번역 및 메시지 형식으로 준비가 다음 그래서 나는 내 클라이언트 응용 프로그램에서 그것을 숨기려 나는이 클라이언트가 작동합니다.
어디에서 어떻게 시작해야할지 모르겠다. 이 라이브러리에 대해 거친 클래스를 설정해야합니까? 그래서, 이러한 테스트와 내가 TDD 상태로 아무 아기 단계, 한 번에 전체 작업의 구현을 작성하도록 강요하고있어 경우 나는
public void testClientSendInvalidEventCommand() {
NotificationClient client = new NotificationClient(...);
Response code = client.notifyOnEvent(Event.WRONG_EVENT);
assertEquals(1223, code.codeValue());
}
다음과 같이 테스트 NotificationClient로 시작해야합니다. 나는 클라이언트에서 sosmething을 조롱 할 수 있지만, 나는이 일을 미리 조롱해야한다는 것을 알아야한다. 그래서 나는 만들어 질 수있는 선행을해야한다.
아마도 맨 아래부터 시작하여이 메시지 서식 지정 구성 요소를 먼저 테스트 한 다음 올바른 클라이언트 테스트에 사용해야합니까?
올바른 방법은 어떤 방법입니까? 우리는 항상 위에서부터 시작해야합니까 (이 거대한 단계를 처리하는 방법)? 원하는 기능의 작은 부분을 구현하는 모든 클래스 (이 예에서는 Formatter)부터 시작할 수 있습니까?
내 테스트를 어디서 치는지 알아야한다면 더 쉽게 진행할 수 있습니다.
그러나 이러한 클래스를 찾아 단위 테스트를 작성하고 시작하는 위치를 찾는 방법은 무엇입니까? 나는 TDD를위한 출발점을 선택할 수 있도록 몇몇 수업을 미리 준비해야한다고 생각합니다. 그렇다면이 지점이 어디에 있어야할까요? 그것이 시스템의 가장자리에 있어야 하는가, 아니면 시스템의 중간에있을 수 있는가? –
TDD 상향식 또는 하향식 방식을 사용할 수 있습니다. 나는 당신의 예제에 Formatter가 어떻게 맞는지 보지 못했다. 테스트를 통과하면 ** 통과해야하는 ** 최소 ** 코드 금액을 작성해야합니다. –