私はデータベーステーブルをデータでシードし、ビルドしているライブラリを使っていくつかの操作を行い、最終的に期待値の別のデータセットに対してそれらのテーブルをテストします。私はyamlファイルを使用しています。PHPUnitデータベーステスト:テストごとにデータセットを使用するには?
これまでのところ、私はこれが、このコードでの作業を取得することができます
/* ... */
public function getDataSet() {
return new \PHPUnit_Extensions_Database_DataSet_YamlDataSet('path/to/yaml/data');
}
/* ... */
public function testFoo() {
// setup state and run operations
// load expected data to test against
$expected = new \PHPUnit_Extensions_Database_DataSet_YamlDataSet('path/to/expected/yaml');
static::assertTablesEqual($expected->getTable('foo'), $this-getConnection()->createDataSet('foo'));
}
私はちょうど
// fooSeedData.yml
foo:
- id: 1
# ...
// fooExpectedData.yml
foo_test1:
# ...
foo_test2:
# ...
// fooTest.php
public function foo_test1() {
/* ... */
$expected->getTable('foo_test1')
/* ... */
}
public function foo_test2() {
/* ... */
$expected->getTable('foo_test2')
/* ... */
}
を行うことができるようにしたいと思いますがstatic::assertTablesEqual($expected, $actual);
は、データと一緒にテーブル名を比較します。テストごとにデータセットファイルが必要です。多数のデータセットファイルを持つことは過度に思われ、私は何か間違ったことをしていると思います。
これを行う方法はありますか?私はphpunit/dbunitを間違って使用していますか?もしそうなら、私はこれをどのようにしなければなりませんか?どんな助けもありがとう!
私はこの問題を理解していませんか。しかし、複数の期待値データセットの便利な取り扱いについては、[配列データセット](https://github.com/sebastianbergmann/dbunit/blob/m aster/src/DataSet/Ar rayDataSet)を使用することを検討してください。 .php)を実際のデータに対して[クエリテーブル](https://phpunit.de/manual/current/en/database.html#database.asserting-the-result-of-a-query)と一緒に使用します。配列データセットは作成が簡単で、保守が簡単なので、通常、テストごとのデータセットを作成するのに完全に適合します。 – xmike