2014-03-18 9 views
1

키위를 사용하여 일부 클래스를 테스트하고 가짜 파일 경로를 반환하기 위해 클래스 메서드를 스텁해야합니다. 일부 경로 속성을 노출 시키거나 테스트 용으로 하위 클래스를 만들 수는 있지만 하나의 클래스 만 유지하고 일부 메서드는 스텁하지 않는 것이 좋습니다. 이 테스트 통과 및 양자 택일 실패 때문에,키위 BDD ​​모의에 대한 Bizzarre 동작

it(@"return the full list of POS", ^(){ 
    NSString *sample_data_path = [[NSBundle bundleForClass:[self class]] pathForResource:@"sample_pos" ofType:@"plist"]; 
    Class p = [PointOfSale class]; 
    [p stub:@selector(sampleDataPath) andReturn:sample_data_path]; 
    NSArray *allPos = [p findAll]; 
    [[theValue([allPos count]) should] equal:theValue(100)]; 
}); 

내가 혼란 스러워요 하나 개의 성공과 하나 개의 실패 :

는 테스트입니다. "before_each"또는 다른 실행중인 테스트가 없습니다 ...

누군가가 동일한 문제가 있습니까?

답변

0

이 문제의 원인을 발견했습니다. 원본 및 스텁 클래스의 sampleDataPath 메서드는 서로 다른 번들 (주 번들 및 테스트 번들)에 있어야하는 파일 경로를 반환합니다. "생산"파일도 테스트 번들에 복사되었으므로 테스트 결과가 예측할 수 없기 때문에 같은 번들에 같은 이름의 파일 두 개가 있습니다.)

그래서 .... 이와 같은 문제가 발생하면 파일 이름을 다시 확인하십시오!