我正在编写单元测试以确定字符串值是否显示2个有效数字,即。 “N.NN”
strokeValue = [NSString stringWithFormat:@"%.2f",someFloatValue];
如何编写断言的测试,我的字符串总是有2位小数?
答案 0 :(得分:3)
由于您使用%.2f
格式说明符格式化浮点值,因此根据定义,结果字符串将始终具有两个小数位。如果someFloatValue
为5,您将获得5.00。如果someFloatValue
为3.1415926,您将获得3.14。
无需测试。对于给定的格式说明符,它总是如此。
编辑:我发现您可能确实想要确认您实际使用的是正确的格式说明符。检查结果字符串的一种方法是:
NSRange range = [strokeValue rangeOfString:@"."];
assert(range.location != NSNotFound && range.location == strokeValue.length - 3, @"String doesn't have two decimals places");
答案 1 :(得分:1)
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"\.[0-9]{2}$" options:0 error:nil];
if([regex numberOfMatchesInString:strokeValue options:0 range:NSMakeRange(0, [strokeValue length])]) {
// Passed
} else {
// failed
}
(未测试的)