|
|
|
@ -22,7 +22,7 @@ Yii のフィクスチャフレームワークにおける鍵となる概念は
|
|
|
|
|
前者は汎用目的のフィクスチャに最も適しています。 |
|
|
|
|
一方、後者はデータベースとアクティブレコードを扱うために専用に設計された拡張機能を持っています。 |
|
|
|
|
|
|
|
|
|
次のコードは、`User` アクティブレコードと対応するテーブルに対するフィクスチャを定義するものです。 |
|
|
|
|
次のコードは、`User` アクティブレコードとそれに対応するテーブルに関して、フィクスチャを定義するものです。 |
|
|
|
|
|
|
|
|
|
```php |
|
|
|
|
<?php |
|
|
|
@ -110,9 +110,9 @@ DB と関係しないフィクスチャ (例えば、何らかのファイルや
|
|
|
|
|
[CodeCeption](http://codeception.com/) を使ってコードをテストしている場合は、フィクスチャのローディングとアクセスを内蔵でサポートしている `yii2-codeception` を使用することを検討すべきです。 |
|
|
|
|
その他のテストフレームワークを使っている場合は、テストケースで [[yii\test\FixtureTrait]] を使って同じ目的を達することが出来ます。 |
|
|
|
|
|
|
|
|
|
次に `yii2-codeception` を使って `UserProfile` ユニットテストを各方法を説明します。 |
|
|
|
|
次に `yii2-codeception` を使って `UserProfile` 単体テストを書く方法を説明します。 |
|
|
|
|
|
|
|
|
|
[[yii\codeception\DbTestCase]] または [[yii\codeception\TestCase]] を拡張するユニットテストクラスにおいて、どのフィクスチャを使用したいかを [[yii\test\FixtureTrait::fixtures()|fixtures()]] メソッドの中で宣言します。 |
|
|
|
|
[[yii\codeception\DbTestCase]] または [[yii\codeception\TestCase]] を拡張する単体テストクラスにおいて、どのフィクスチャを使用したいかを [[yii\test\FixtureTrait::fixtures()|fixtures()]] メソッドの中で宣言します。 |
|
|
|
|
例えば、 |
|
|
|
|
|
|
|
|
|
```php |
|
|
|
@ -186,7 +186,7 @@ foreach ($this->profiles as $row) ...
|
|
|
|
|
|
|
|
|
|
デフォルトでは、フィクスチャクラスは対応するデータファイルを探すときに、フィクスチャのクラスファイルを含むフォルダのサブフォルダである `data` フォルダの中を見ます。 |
|
|
|
|
簡単なプロジェクトではこの規約に従うことができます。 |
|
|
|
|
大きなプロジェクトでは、おそらくは、同じフィクスチャクラスを異なるテストに使うために、データファイルを切り替える必要がある場合がよく生じます。 |
|
|
|
|
大きなプロジェクトでは、おそらくは、同じフィクスチャクラスを異なるテストに使うために、データファイルを切り替える必要がある場合が頻繁に生じるでしょう。 |
|
|
|
|
従って、クラスの名前空間と同じように、データファイルを階層的な方法で編成することを推奨します。 |
|
|
|
|
例えば、 |
|
|
|
|
|
|
|
|
@ -207,7 +207,7 @@ data\
|
|
|
|
|
# 等々 |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
このようにして、テスト間でフィクスチャのデータファイルが衝突するのを回避し、必要に応じてデータファイルを使います。 |
|
|
|
|
このようにして、テスト間でフィクスチャのデータファイルが衝突するのを回避し、必要に応じてデータファイルを使い分けます。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
> Note|注意: 上の例では、フィクスチャファイルには例示目的だけの名前が付けられています。 |
|
|
|
|