2016-06-20 59 views
1

我正在爲我的項目在Objective C中編寫XCTest案例。 我有顯示警報視圖(已過時,但我希望保留它現在)的方法。我想嘲笑它以迅速編寫測試用例,但我沒有得到任何方式。在Swift中嘲笑UIAlertView

我對OCMock有點熟悉,當我讀到時,它是建立在Objective C中的。在目標C中,我們可以使用OCMock類返回預期結果並驗證alert view show方法。但如何在Swift中做同樣的事情? 我嘗試了像Objective C一樣的編寫方式,但是在swift中,它給一些像OCMock中的「addReturn」這樣的方法帶來了編譯錯誤。這可能是因爲OCMock使用Objective C運行時語言功能來創建模擬,而這在快速模式中是不存在的。

-(void)showMyError { 
    UIAlertView *alert = [[UIAlertView alloc] 
    initWithTitle:@"Title" 
    message:@"Please press a button." 
    delegate:... 
    cancelButtonTitle:@"Cancel" 
    otherButtonTitles:@"OK", nil]; 

[alert show]; 

} 

有什麼辦法讓我可以在Swift中爲上述方法編寫XCTestcases?

+0

請參閱http://ocmock.org/swift/ –

回答

1

您可以使用依賴注入。爲此,請使用方法initWithTitle:message:delegate:cancelButtonTitle:otherButtonTitles:show創建一個協議。創建一個符合該協議的模擬類。當要顯示警報時,將類對象注入要測試和實例化注入類的類中。