2012-11-05 27 views
0

我想單元測試一個NSString它的價值,但我需要能夠接受兩個「正確的」值。不只是一個。我將如何做到這一點?STAssertEqualObjects可以檢查兩個接受的值嗎?

我知道我可以這樣做:

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

但我怎麼接受,例如,@"attachment"@"table"值是正確的,沒有失敗的單元測試,如果NSString等於任何一個。

謝謝。

回答

1

沒有特別的宏。你可以使用STAssertTrueNSArray常量,其中包含可接受值:

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

你需要一個額外的對括號來隱藏該處理STAssertTrue宏預處理逗號。

或者你可以只拼出來:

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

爽!第一個例子沒有像書面的那樣工作,但是我在一個單獨的行上創建了NSArray,然後聲明它,它工作。第二個例子就是這樣工作的。謝謝! – TrekOnTV2017

+0

如果您使用的是Xcode 4.5或更高版本,則第一個示例應該可以工作。 –

+0

我有Xcode 4.5.1,但由於某種原因它不喜歡這種語法。 – TrekOnTV2017