I added a simple unit test to test my string extension. But it fails. What I am I doing wrong here?
From what I know XCTAssertEqual
is testing value and not the object itself?
The third line btw, says the string are equal, but XCTAssertEqual
says they're not.
- (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]);
}
From the documentation of XCTAssertEqual
:
Generates a failure when a1 is not equal to a2. This test is for C scalars, structs and unions.
You should use XCTAssertEqualObjects
(which uses isEqual:
internally) or something like:
XCTAssertTrue([[firstNickName initialsFromString] isEqualToString:expectedResult],
@"Strings are not equal %@ %@", expectedResult, [firstNickName initialsFromString]);