同じ属性に対して複数の値をテストするにはどうすればよいですか?PHPUnit、複数の値をテストする
class Test {
private $_optionalValue = null;
function setValue(String $optionalValue)
{
$this->_optionalValue = $optionalValue;
}
}
だからここに、 "$ _optionalValueは、" NULLまたはユーザー定義の値かもしれないが、私はこのようなPHPUnitでチェックする場合:$ optionalValueがStringではないので
$optionalValue = PHPUnit_Util_Class::getObjectAttribute($my_object, '_optionalValue');
$this->assertThat(
$optionalValue,
$this->logicalXor(
$this->assertNull($optionalValue),
$this->logicalAnd(
$this->assertAttributeInternalType('string', '_optionalValue', $optionalValue),
$this->assertRegExp('/[0-9]{2}:[0-9]{2}:[0-9]{2}/', (string) $optionalValue)
)
)
);
ザ・正規表現アサーションが失敗しました(デフォルトではヌルです)
なぜこれをこの奇妙な方法でテストしていますか?内部状態ではなくクラスの動作をテストすることになっています。値を設定します。値を取得します。同じことを確認してください。それだけであなたがする必要があります。 – Gordon
@hakre彼のテストでXORの問題は何ですか? – meze
setter(私の場合はもっと複雑です)をsettedプロパティの代わりにテストしますか?そして、私はXORを使用しました。なぜなら属性はNULL XOR(文字列と正規表現の正規表現)でなければならなかったからです。私はORを使用していたかもしれません。 – kitensei