我添加了一个简单的单元测试来测试我的字符串扩展。但是失败了。我在这里做错了什么?

据我所知XCTAssertEqual是测试值,而不是对象本身?

第三行顺便说一句,字符串是相等的,但是XCTAssertEqual表示它们不相等。

- (void) testInitialsFromFullname {
    NSString *firstNickName = @"Mike Kain";
    NSString *expectedResult = @"MK";
    NSLog(@"Equal:%@", [[firstNickName initialsFromString] isEqualToString:expectedResult] ? @"YES" : @"NO");

    XCTAssertEqual(expectedResult, [firstNickName initialsFromString], @"Strings are not equal %@ %@", expectedResult, [firstNickName initialsFromString]);
}

最佳答案

XCTAssertEqual的文档中:



您应该使用XCTAssertEqualObjects(内部使用isEqual:)或类似方法:

XCTAssertTrue([[firstNickName initialsFromString] isEqualToString:expectedResult],
              @"Strings are not equal %@ %@", expectedResult, [firstNickName initialsFromString]);

10-07 19:17