比较NSStrings包含表情符号字符

时间:2016-05-20 10:59:18

标签: objective-c unit-testing cocoa

我正在使用一个反向字符串的函数,即使它有表情符号字符。该功能在所有情况下都很有效。现在我正在为这个方法编写测试用例,除了带有表情符号的测试外,它会通过所有测试,即使反向字符串是完全正确的。如果字符串具有表情符号字符,isEqualToString似乎无法正常工作。这是Assert方法:

- (void)doTestCase:(NSString *)test assertedValue:(NSString *)value{

    NSString *reversedString = [test reversedString];

    XCTAssert([reversedString isEqualToString:value]);
}

我称之为:

[self doTestCase:@"LOL" assertedValue:@"LOL"];

但即使反向字符串完全相同,它也会失败。

尝试转换为UniCode,但同样的问题:

- (void)doTestCase:(NSString *)test assertedValue:(NSString *)value{

    NSString *reversedString = [test reversedString];

    NSData *data = [value dataUsingEncoding:NSNonLossyASCIIStringEncoding];
    NSString *goodValue = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

   data = [reversedString dataUsingEncoding:NSNonLossyASCIIStringEncoding];
   NSString *goodReversedString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

   XCTAssert([goodReversedString isEqualToString:goodValue]);
}

0 个答案:

没有答案