1
私はTagModel
を返す単一のメソッドで単純なファクトリクラスをテストしています。メソッドによって構築されたオブジェクトに渡されるパラメータの順序をテストする方法
class TagFactory
{
public function buildFromArray(array $tagData)
{
return new TagModel(
$tagData['t_id'],
$tagData['t_promotion_id'],
$tagData['t_type_id'],
$tagData['t_value']
);
}
}
私はメソッドをテストすることができます...
public function testbuildFromArray()
{
$tagData = [
't_id' => 1,
't_promotion_id' => 2,
't_type_id' => 3,
't_value' => 'You are valued',
];
$tagFactory = new TagFactory();
$result = $tagFactory->buildFromArray($tagData);
$this->assertInstanceOf(TagModel::class, $result);
}
私はnew TagModel…
にパラメータの順序を変更した場合、テストはまだ合格します。私はprophesize場合
TagModel
...
$tagModel = $this->prophesize(TagModel::class);
$tagModel->willBeConstructedWith(
[
$tagData['t_id'],
$tagData['t_promotion_id'],
$tagData['t_type_id'],
$tagData['t_value']
]
);
は...しかし、私は、何を主張すべきですか?彼らがそうでないので
assertSame
は機能しません。
TagModel
のゲッターを使って注文をテストすることができましたが、このユニットだけでテストしました。しかし、もし私がそれらを変えても、テストはまだ通り抜けなければならないので、注文はテストすべきだと思う。
ありがとう、私はこのテストが基本的にTagModelテストとなり、パラメータが正しい順序で渡されることをテストすることを意味しています。 – deadlyhifi