gpt4 book ai didi

objective-c - STAssertEqualStrings 中的转义序列

转载 作者:行者123 更新时间:2023-12-03 17:45:53 26 4
gpt4 key购买 nike

我正在针对 Cocoa API 编写一个发现测试,因为我正在学习所有与 Mac 相关的东西。我目前正在尝试寻找对字符串进行 URL 编码的最佳方法。使用适用于 Mac 的 Google 工具箱,我有一个单元测试,故意导致失败:

 NSString* expected = @"ab%%20c";
NSString* encoded = @"ab c";
STAssertEqualStrings(expected, encoded, @"Expected [%s] actual [%s]", [expected UTF8String], [encoded UTF8String]);

它提示“ab P != ab c”它在输出中转储的垃圾让我很困惑。就好像百分号没有正确转义,但我知道它是。我的主要问题是如何获得格式正确的错误消息,以便我可以确定我正在处理苹果而不是橙子?

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

最佳答案

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

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

关于objective-c - STAssertEqualStrings 中的转义序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/260214/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com