簡體   English   中英

OCMock返回值

[英]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=gnu89std=gnu99標志。 根據Apple文檔,如果將其設置為Compiler Default則相當於gnu89,這也沒關系。

這可能是導致錯誤的原因。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM