2008-11-03 2 views
0

Я пишу тест обнаружения против API Cocoa, поскольку я наращиваю все, что связано с Mac. В настоящее время я пытаюсь найти лучший метод для URL-кодирования строки. Использование инструментов Google для Mac У меня есть модульное тестирование, что я намеренно вызвать сбой в:Escape последовательности в STAssertEqualStrings

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

и жалуется на «абы P = AB C!» Мусорной она сбрасывает в выходном бросают меня. Как будто знак процента не сбежал, но я знаю, что это так. Мой главный вопрос: как я получу правильно сформированное сообщение об ошибке, чтобы я мог быть уверен, что имею дело с яблоками вместо апельсинов?

* update Stackoverflow удаляет мусор в моем оригинальном посте. Вышеупомянутая ошибка преднамеренно иллюстрирует проблему с сообщением об ошибке. Меня беспокоит мусор, который отображается в сообщении об ошибке, так как он чисто не детализирует то, что находится в фактической строке. Ошибка говорит что-то вроде «утверждение не выполнено ab [apple-symbol] c! = Ab c», где я получаю символ яблока в сообщении вместо знака процента. На практике кодирование будет возвратом вызова метода, и я хотел бы проверить, используя сообщение об ошибке утверждения, содержимое строки.

+0

Я не уверен, что понял вопрос. Ожидаемый не равен закодированному, поэтому утверждение не выполняется. Кажется, что он работает правильно. Или я чего-то не хватает? – 2008-11-04 03:49:24

ответ

2

Вы вводите в заблуждение escape-обратную косую черту, которая применяется во время компиляции, с экранирующим знаком процента, который применяется для форматирования строки с помощью printf-подобных функций и методов. Поскольку expected не обрабатывается такой функцией, процентные знаки не ускользают.

Сказанное, если StackOverflow не искажает ваше сообщение, знаки процента должны присутствовать в «ab %% c! = Ab c».

Смежные вопросы