마침내 내가 작업하고있는 프로젝트에 일부 TDD가 부과되어 가장자리로 빠져 나옵니다. 원하는 코드는 알고 있지만 방법은 알지 못합니다. 이OCMock 테스트 개체가 할당되고 메서드가 호출됩니다.
을 :)위한 시험은 내가 찾고 구현은 다음과 같습니다
이- (void) doSomething
{
FooBuilder *foo = [[FooBuilder alloc] init];
[foo doSomethingElseWithCompletionBlock:^{
[self somethingDone];
}];
}
그래서 나는 내 테스트가) 시험 방법은 다음 호출을 새로운 FooBuilder
와 b) 그 방법을 할당하는 확인하려면 새로운 객체에 대한 메소드.
어떻게해야합니까? 나는 alloc
클래스 방법을 조롱하려고 시도했지만, 그 길은 광기가 있다는 것을 신속하게 결정한 길로 시작했다.
참고이 테스트에서는 FooBuilder 자체를 테스트하지 않고 공동 작업 만 수행합니다.
존, 관심과 자세한 답변을 주셔서 감사합니다.하지만 여기에 뭔가 빠졌습니다. 테스트중인 클래스와'FooBuilder' 클래스 사이의 연결을 문제로 진단합니다.이렇게함으로써, 당신이 뭔가 더 단순하게 만드는 것처럼 느껴집니다. 나는 Foos를 표시하는 객체 막대를 가지고 있습니다. 이렇게하려면 FooBuilder를 사용하여 Foo를 빌드해야합니다. 내가 테스트를 더 쉽게하기 위해 필요하지 않은 보편성을 소개하라고 요구하는 것처럼 느껴진다. – dpassage
오늘 아침에 문제가 실제로 클래스의 종속성 주입이라는 것을 깨달았습니다. 그래서 나는 내 대답을 완전히 다시 썼다. 크기에 따라 사용해보십시오. ... 너무 복잡하게 느껴질 경우 알려 주시면 더 자세히 설명하겠습니다. –
나는 아직도 내가 묻고있는 것을 얻지 못하고 있다고 생각한다. 내 질문은 실제로 테스트중인 개체가 올바른 아웃 바운드 호출을 수행하도록 OCMock API를 구동하는 방법에 관한 것입니다. 아직도 필요없는 클래스에 일반성을 주입하려고합니다. – dpassage