クラス内に次のような簡単なメソッドがあります
class ToBeTested
{
public function getLocalSettings()
{
require_once 'local.php';
return (isset($configSetting['foo'])) ? true : false;
}
}
local.phpで
<?
$configSetting = array(
'foo' => '1',
'bar' => 'false',
);
getLocalSettingsの単体テストを作成しようとしています。これは依存性注入のようなものだと思いますが、テストの書き方に頭を悩ませることはできません。テストで過度に複雑になるのはかなり些細なコードのブロックのようですが、ここでリファクタリングする自由があり、テスト目的で「local.php」を独自の値/データプロバイダーに置き換えたいと思います
明確さ/コメントのために編集
ここではサンプルとして構成を使用しましたが、実際に使用しているのは、データベースから出力され、データソースとして含まれ、この関数で解析される巨大なファイルです。質問が複雑になりすぎないように、簡略化したバージョンを作成しましたが、含まれている配列は数メガバイトであり、実際には「構成ファイル」ではありません。残念ながら、ファイル構成を処理する際にさまざまなアプローチを提供するソリューションは役に立ちませんが、この配列を挿入する方法は問題なく機能します(ただし、ある時点で、その「require」を実行する必要があります。
ありがとう