PHPUnit には、値の型をチェックするアサーションがありますか
関数:
public function getTaxRate()
{
return 21;
}
返された値が数値であることをテストしたいと思います。
申し訳ありませんが、PHPUnit テストは初めてです。
SimpleTest には assertIsA(); があることがわかりました。PHPUnitに似たものはありますか。
よろしく
PHPUnit には、値の型をチェックするアサーションがありますか
関数:
public function getTaxRate()
{
return 21;
}
返された値が数値であることをテストしたいと思います。
申し訳ありませんが、PHPUnit テストは初めてです。
SimpleTest には assertIsA(); があることがわかりました。PHPUnitに似たものはありますか。
よろしく
何かが「数値である」という概念は、php のような弱い型付けの言語では少しあいまいです。PHPでは、1 + "1"
2です。文字列"1"
は数字ですか?
Phpunit アサーションassertInternalType()
は次のことに役立ちます。
$actual = $subject->getTaxRate();
$this->assertIternalType('int', $actual);
ただし、アサーションを論理演算子と組み合わせることはできません。したがって、「42.0 が整数または浮動小数点数のいずれかであると主張する」という考えを簡単に表現することはできません。このようなより集中的なアサーションは、プライベート ヘルパー アサーション メソッドにグループ化できます。
private function assertNumber($actual, $message = "Is a number") {
$isScalar = is_scalar($actual);
$isNumber = $isScalar && (is_int($actual) || is_float($actual));
$this->assertTrue($isNumber, $message);
}
そして、同じテストケース クラス内のテストでそれを使用するだけです。
$actual = $subject->getTaxRate();
$this->assertNumber($actual);
独自のカスタム アサーションを作成することもできます。数値疑似型アサーションを頻繁に実行する必要がある場合は、おそらくこれが最善の策です。それがどのように行われるかを示すPHPUnitの拡張を参照してください。
関連している: