STAssertEquals报告相同的字符串是不同的

REA*_*EE 1 unit-testing sentestingkit

我正在尝试为库编写单元测试.库中的方法返回字符串,我想确保它返回正确的字符串.但是STAssertEqualsSenTestKit中的某个宏看起来却是不同的值,即使它是相同的.在此输入图像描述

你可以看到描述部分清楚地表明两个字符串值是相同的,但是这个宏抱怨它们的值是不同的.当我从方法返回静态字符串时(就像返回一样@"op_user")它传递了测试用例.任何人都知道导致此测试失败的原因是什么?

Mar*_*age 5

我想你想使用STAssertEqualObjects()而不是STAssertEquals().前者用于Objective-C实例,后者用于原始类型.

来自文档:

STAssertEqualObjects

当两个对象不同时,测试用例失败.

STAssertEquals

当两个值不同时,测试用例失败.

如果将Objective-C对象与STAssertEquals()进行比较,则只需比较它们的指针值.它们可以指向包含相同字符串的两个不同的字符串对象.您希望它们相等,即使它们的指针值不同.

要比较实际的字符串内容,您需要使用isEqual:方法,这正是STAssertEqualObjects()所做的.