Kon*_*d77 67 unit-testing objective-c xctest
我添加了一个简单的单元测试来测试我的字符串扩展.但它失败了.我在这里做错了什么?
据我所知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]);
}
Run Code Online (Sandbox Code Playgroud)
Are*_*lko 154
来自以下文件XCTAssertEqual:
当a1不等于a2时生成失败.此测试适用于C标量,结构和联合.
你应该使用XCTAssertEqualObjects(isEqual:内部使用)或类似的东西:
XCTAssertTrue([[firstNickName initialsFromString] isEqualToString:expectedResult],
@"Strings are not equal %@ %@", expectedResult, [firstNickName initialsFromString]);
Run Code Online (Sandbox Code Playgroud)
Leo*_*eon 12
我刚才有一个类似的问题可能对某人有帮助.
我有一个Float扩展函数,它返回一个字符串.以下测试失败:
testValue = 0.01
XCTAssertEqual(testValue.formattedForCost(), "0,01 €")
Run Code Online (Sandbox Code Playgroud)
通过以下消息:
Assertions: XCTAssertEqual failed: ("Optional("0,01 €")") is not equal to ("Optional("0,01 €")")
Run Code Online (Sandbox Code Playgroud)
这很烦人.但是我发现如果我改变我的测试以使用unicode不间断空格字符:
XCTAssertEqual(testValue.formattedForCost(), "0,01\u{00a0}€")
Run Code Online (Sandbox Code Playgroud)
它过去了.
| 归档时间: |
|
| 查看次数: |
30772 次 |
| 最近记录: |