0

文字列値が有効数字2桁で表示されるかどうかを判断する単体テストを作成しています。「N.NN」

    strokeValue = [NSString stringWithFormat:@"%.2f",someFloatValue];

文字列の小数点以下が常に 2 桁であると主張するテストを作成するにはどうすればよいですか?

4

2 に答える 2

3

書式指定子を使用して float 値を書式設定しているため%.2f、定義により、結果の文字列は常に小数点以下 2 桁になります。5 の場合someFloatValueは 5.00 になります。3.1415926 の場合someFloatValue、3.14 になります。

テストする必要はありません。指定されたフォーマット指定子では常に true になります。

編集:実際に正しいフォーマット指定子を使用していることを実際に確認したい場合があると思います。結果の文字列を確認する 1 つの方法は次のとおりです。

NSRange range = [strokeValue rangeOfString:@"."];
assert(range.location != NSNotFound && range.location == strokeValue.length - 3, @"String doesn't have two decimals places");
于 2012-11-04T17:18:57.977 に答える
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
}

(未テスト)

于 2012-11-04T16:53:34.463 に答える