1
我使用OCMock v3做單元測試,我想測試下面的一段代碼:檢查參數值傳遞給函數在單元測試
@implementation School
-(void) handleStudent:(Student*) student{
Bool result = [self checkIdentityWithName:student.name age:student.age];
...
}
...
@end
在我下面的測試情況下,我創建了一個student
實例名稱爲「約翰」,23歲,然後我在試運行功能:
-(void) testHandleStudent{
Student *student = [Student initWithName:@"John" age:23];
// function under test
[schoolPartialMock handleStudent:student];
// I want to not only verify checkIdentityWithName:age: get called,
// but also check the exact argument is passed in. that's John 23 in this case
// how to check argument ?
}
在我的測試情況下,我想驗證確切的參數值傳遞到功能checkIdentityWithName:age:
。這就是名字「約翰」,並使用了23歲。如何驗證在OCMock v3? (有它的文檔怎麼做,在沒有明顯的例子。)
謝謝,我d希望看到任何其他答案都可以提供一個解決方案,以便用OCMock 3隨時捕捉參數。如果不可能,我會接受這個答案。 –
謝謝,但如果你看OCMock 3文檔我提供的答案匹配此文檔和語法。 – iSashok
這是正確的答案。如果你真的想捕捉參數來做斷言,那麼你必須使用'andDo'來使用塊。在這種情況下,您必須格外小心,確定變量的範圍,並保留從調用中提取的參數。之前的問題已經被問及(並回答了!)。 –