我正在编写一个单元测试来确定字符串值是否以 2 个有效数字出现,即。“NN”
strokeValue = [NSString stringWithFormat:@"%.2f",someFloatValue];
如何编写一个断言,我的字符串总是有 2 位小数的测试?
我正在编写一个单元测试来确定字符串值是否以 2 个有效数字出现,即。“NN”
strokeValue = [NSString stringWithFormat:@"%.2f",someFloatValue];
如何编写一个断言,我的字符串总是有 2 位小数的测试?
由于您使用%.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");
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
}
(未经测试)