XCTAssertEqual无法比较两个字符串值? [英] XCTAssertEqual fails to compare two string values?
本文介绍了XCTAssertEqual无法比较两个字符串值?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我添加了一个简单的单元测试来测试我的字符串扩展名.但是失败了.我在这里做错了什么?
I added a simple unit test to test my string extension. But it fails. What I am I doing wrong here?
据我所知,XCTAssertEqual
是测试值,而不是对象本身?
From what I know XCTAssertEqual
is testing value and not the object itself?
第三行btw表示字符串相等,但XCTAssertEqual
表示字符串不相等.
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]);
}
推荐答案
来自XCTAssertEqual
的文档:
当a1不等于a2时生成失败. 该测试适用于C语言 标量,结构和联合.
Generates a failure when a1 is not equal to a2. This test is for C scalars, structs and unions.
您应该使用XCTAssertEqualObjects
(内部使用isEqual:
)或类似的内容
You should use XCTAssertEqualObjects
(which uses isEqual:
internally) or something like:
XCTAssertTrue([[firstNickName initialsFromString] isEqualToString:expectedResult],
@"Strings are not equal %@ %@", expectedResult, [firstNickName initialsFromString]);
这篇关于XCTAssertEqual无法比较两个字符串值?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文