XCTAssertEqualObjects可以检查两个可接受的值吗?

时间:2012-11-05 22:15:03

标签: ios macos unit-testing

我想对NSString单位测试它的值,但我需要能够接受两个“正确”的值。不只是一个。我该怎么做?

我知道我可以这样做:

STAssertEqualObjects(node.name, @"attachment", @"invalid name");

但是,我如何接受@"attachment"@"table"值是正确的,如果NSString等于任何一个,则单元测试不会失败。

谢谢。

1 个答案:

答案 0 :(得分:1)

没有特别针对此的宏。您可以使用STAssertTrue和包含可接受值的NSArray字面值:

STAssertTrue([@([@"attachment", @"table"]) containsObject:myString]), @"invalid name");

您需要额外的一对括号来隐藏处理STAssertTrue的宏预处理器中的逗号。

或者你可以拼出来:

STAssertTrue([@"attachment" isEqual:node.name] || [@"table" isEqual:node.name], @"invalid name");