2

PHP 5.3とSimpleTestを使用していますが、より一般的な回答を歓迎します。各プラグインは抽象クラスを拡張するクラスになります...このインターフェイスが正しく機能することをテストするにはどうすればよいですか?複数のプラグインを作成してテストする必要がありますか?それとももっと満足のいく方法がありますか?

例として、お金を表す何かを書くことを想像してみてください。ユーザーはこれをさまざまな通貨クラスで拡張できます。

抽象クラスMoney
{
privatestatic $ symbol;
プライベート静的$num_decimals;

public function __construct($ amount){...}
public function __toString(){...}
}

その場合、プラグインは次のようになります。

クラスGBPoundはMoneyを拡張します
{ privatestatic
$ symbol="£";
private static $ num_decimals = 2;
}

おそらく、UnitTestクラスとmoneyクラスを拡張して、多重継承をエミュレートすることはできますが、それは面倒になる可能性があります。

単体テストはインターフェイスのテストに関するものであるため、非常に困難ですが、クラス自体はプラグインインターフェイスです。

4

2 に答える 2

1

simpletestについてはよくわかりませんが、PHPUnitは抽象クラスのモックアップを作成して、それらを直接テストできるようにします。

于 2010-10-28T09:25:23.423 に答える
0

空のプラグインクラスを作成して、インターフェイスをテストするというアイデアを採用することにしました。私には、これは抽象クラスをあざけるよりもはるかにクリーンに思えます。(ただし、他の理由で、すべてのテストをPHPUnitに移行中です。)

于 2010-11-11T11:04:05.160 に答える