XCTAssertEqual无法比较两个字符串值? [英] XCTAssertEqual fails to compare two string values?

查看:543
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆