Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c stassertequalstring中的逃逸序列_Objective C_Cocoa_Unit Testing - Fatal编程技术网

Objective c stassertequalstring中的逃逸序列

Objective c stassertequalstring中的逃逸序列,objective-c,cocoa,unit-testing,Objective C,Cocoa,Unit Testing,我正在编写一个针对Cocoa API的发现测试,因为我正在逐步开发所有与Mac相关的东西。我目前正在尝试发现URL编码字符串的最佳方法。使用Google toolbox for Mac,我有一个单元测试,我故意在以下方面导致失败: NSString* expected = @"ab%%20c"; NSString* encoded = @"ab c"; STAssertEqualStrings(expected, encoded, @"Expected [%s] actual [%s]",

我正在编写一个针对Cocoa API的发现测试,因为我正在逐步开发所有与Mac相关的东西。我目前正在尝试发现URL编码字符串的最佳方法。使用Google toolbox for Mac,我有一个单元测试,我故意在以下方面导致失败:

 NSString* expected = @"ab%%20c";
 NSString* encoded = @"ab c";
 STAssertEqualStrings(expected, encoded, @"Expected [%s] actual [%s]", [expected UTF8String], [encoded UTF8String]);
它抱怨“abp!=abc”,它在输出中转储的垃圾正在扔给我。好像百分比符号没有正确转义,但我知道是的。我的主要问题是如何得到一个格式正确的错误消息,这样我就可以确定我处理的是苹果而不是桔子了

*更新
Stackoverflow正在清除我原来帖子中的垃圾。上述故障旨在说明故障消息的问题。我关心失败消息中显示的垃圾,因为它完全没有详细说明实际字符串中的内容。失败表示类似于“断言失败ab[apple symbol]c!=ab c”,我在消息中得到一个苹果字符,而不是百分号。实际上,encoded将是方法调用的返回,我想使用断言失败消息检查字符串的内容。

您混淆了反斜杠转义(在编译时应用)和百分号转义(通过类似于printf的函数和方法应用于格式化字符串)。因为
expected
没有被这样的函数处理,所以百分号没有转义任何内容


也就是说,除非StackOverflow破坏了您的邮件,否则百分比符号应该出现在“ab%%c!=ab c”中。

我不确定我是否理解这个问题。预期值不等于编码值,因此断言失败。看起来它工作正常。还是我遗漏了什么?请参阅上面的更新以了解清楚。我忘记了为什么我在这里遇到问题。如果你看到的话,我正在将NSString转换为内联的C字符串,然后再插值这些值,这增加了不必要的复杂性。现在这已经不是问题了,因为Xcode已经改变了好几次。