使用带有 NSString 的 XCTAssertEqual 作为错误消息参数

Posted

技术标签:

【中文标题】使用带有 NSString 的 XCTAssertEqual 作为错误消息参数【英文标题】:using XCTAssertEqual with NSString as error message argument 【发布时间】:2014-08-07 16:00:09 【问题描述】:

这是我将如何使用 XCTAssertEqual 的示例

XCTAssertEqual(valueA, valueB, @"message");

但是,当我尝试以下操作时

NSString *message = @"message";
XCTAssertEqual(valueA, valueB, message);

我得到一个编译器错误,即,

Expected ')'

似乎我只是简单地传递了一个 NSString 。当我深入研究定义时,我发现

#define XCTAssertEqual(a1, a2, format...) _XCTPrimitiveAssertEqual(a1, a2, ## format)

我无法做出正面或反面。为什么我无法将NSString* 作为format... 参数传递给XCTAssertEquals,当它接受像@"message" 这样的NSString 文字时?

注意:这似乎适用于所有断言。

【问题讨论】:

【参考方案1】:

试试这个:

XCTAssertEqual(valueA, valueB, @"%@", message);

【讨论】:

以上是关于使用带有 NSString 的 XCTAssertEqual 作为错误消息参数的主要内容,如果未能解决你的问题,请参考以下文章

字符串不相等的 XCTAssert

使用带有 NSString 的 XCTAssertEqual 作为错误消息参数

我可以在静态库中扩展 NSString 类并在带有 Swift 的 App 中使用它吗?

iOS,AFNetworking - 带有 JSON 响应的“清除”NSSTring [关闭]

声明一个带有格式说明符的 NSString 并将其用作在 UIWebview 中打开的 URL

带有 valueForKeyPath 的嵌套 NSDictionary 返回括号而不是 NSString