PHPUNIT テストにはシングルトン クラスの問題が含まれます。
クラス A はシングルトンであり、static public $CI; 属性があり、
static public 関数 &get_ci()
{
if ( !self:: $ CI )
{
self::$CI = &get_instance();
}
return self::$CI;
}
メソッド。
クラス B がクラス A を呼び出します
クラス A $CI がクラス B になります
そして、phpunit が複数のテスト ケースを継続的に実行するため
、クラス A の $CI は常に同じになります。
クラス C はクラス A を呼び出します
返された $CI はクラス B のインスタンスでもあります
クラス B には $abc 属性があり、クラス B が呼び出されたときの属性は 123 であるためです。
クラス C にも $abc 属性があり、これはすでに 456 ですが、クラス C がクラス A を呼び出すとき、クラス A の $CI->abc は依然として 123 です
しかし、私はそれが 456 になると予想しています。
この状況は phpunit でのみ発生します。テスト ケースの完了後にすべての変数オブジェクトがクリアされないためです。通常の使用プロセスであれば、クラスを呼び出す前にクラス C が存在しないため、この問題は発生しません。 B.
-----解決策---------