いろいろ調べながら
CakePHP3で始めてテストコードを書いています。
理解が正しいのか不安なのですが、
現在、テストに関わるデータとして
FixtureとSeedとテストデータが
あると考えており、簡単に以下の理解をしております。
・Fixture
テスト開始時にDBに予め登録しておくデータ(TearDownで削除)
・Seed
本番環境で実際に使うデータ(テストには使わない方が良い)
・テストデータ
テスト対象のプロセスに対してインプットする値
また、いまやろうとしていることを
以下に示します。
ーーーーーーーーーーーー
■テスト概要
customersテーブルに対する顧客登録のテスト
■customersテーブルの概要とテストパターン
・入力項目は name と email
・テスト項目を合計35パターン用意。
■テスト対象
・customersTableに顧客登録のメソッドを書いたのでこれをユニットテストしたい。
・customersControllerで顧客登録フォームのロジックを書いたのでこれを結合テストしたい。
ーーーーーーーーーーーー
上記のことを行う場合、
customersテーブルのテストとcustomersControllerのテストは、
同じテストデータ(35パターンのテストデータ)を使うことになります。
ですので、テストデータを一元管理しようと思い、
testsディレクトリの中などにTestDataディレクトリを作り、
そこでCustomersTestDataなどのクラスを用意しようかと考えています。
最初、Fixtureで同じことができるのでは?と考えたのですが、
Fixutreはあくまでテスト実行前にDBをテスト開始状態にしておくもの
と解釈しており、正常系しか入力しないものと考えています。
しかしネット等で調べてもそのような記述は見つからず、、、
そもそも考え方が間違っているのではないかと
不安になり、こちらで質問をしております。
方向性としてどこか勘違い、理解不足の点ありませんでしょうか?
アドバイスを頂きたいと思います。
回答1件
あなたの回答
tips
プレビュー