[英]OCMock returning values
我正在嘗試為一個方法編寫測試,其中輸出取決於NSDate的timeIntervalSinceNow返回值。 我想在我的測試中指定返回值,以便我可以測試某些場景。
我很難讓這個OCMock對象返回我想要的東西。 這是我的代碼:
id mock = [OCMockObject mockForClass:[NSDate class]];
NSTimeInterval t = 20.0;
[[[mock stub] andReturnValue:OCMOCK_VALUE(t)] timeIntervalSinceNow];
STAssertEquals([mock timeIntervalSinceNow], 20.0, @"Should be eql.");
這會在'typeof'錯誤之前生成“錯誤:期望說明符 - 限定符 - 列表”。
有什么想法嗎? 我是ObjC的新手,所以任何其他相關提示都非常感謝。
謝謝。
實際上,這是編譯器錯誤,而不是OCMock錯誤。 這與OCMOCK_VALUE(t)
宏的工作方式有關。 它被定義為:
#define OCMOCK_VALUE(variable) [NSValue value:&variable withObjCType:@encode(typeof(variable))]
typeof()指令不是C89的一部分,因此請確保已將編譯器設置為使用std=gnu89
或std=gnu99
標志。 根據Apple文檔,如果將其設置為Compiler Default
則相當於gnu89,這也沒關系。
這可能是導致錯誤的原因。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.