2014-03-18 79 views
1

我使用獼猴桃測試一些類,我需要存根類方法只是爲了返回一個假的文件路徑。 我知道我可以解決暴露一些路徑屬性或創建一個子類只是爲了測試,但我優先保留只有一個類和存根的一些方法。Bizzarre行爲在獼猴桃BDD模擬

這是測試:

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返回應該位於不同包(mainbundle和測試包)中的文件路徑。 但是即使是「生產」文件也被複制到了測試包中,所以我們在同一個包中有兩個同名文件,因此測試的結果是不可預測的;)

所以....如果你有這樣的問題,請仔細檢查你的文件名!

相關問題