-2

私は、zendやrailsなどのフレームワークを操作したり、さまざまなテスト方法を使用したりすることに慣れています。ただし、次のメソッドを持つphpで通常の非フレームワークベースのクラスをテストする方法を理解することはできません。

class Example{
    public function add(){}
    public function edit(){}
    public function delete(){}
    public function list(){}
}

私はあなたがテストまたはテストまたはテストフォルダを必要としていることを知っています。内部のクラスは次のようになります。

class ExampleTest extends PHPUnit_Framework_TestCase{}

もしそうなら、機能は何ですか?上記と同じですか?サンプルクラスを使用することを知っていますか、それとも私はそれを要求する必要がありますか?

zendや他の何かのようなフレームワークなしでテストすることになると私は失われます....あなたの助けに感謝します。

注:私は(phpunitを除いて)どのタイプのフレームワークも使用していないので、zendまたはcakephpを指定しても役に立ちません。これは単にゼロから書かれています。

4

2 に答える 2

1

これが答えであるかどうかはわかりませんが、PHPUnitのマニュアルを読むだけです:http ://www.phpunit.de/manual/current/en/

于 2013-01-18T07:43:34.973 に答える
0

あなたの質問を理解できるかどうかはわかりませんが、zfなどのフレームワークを使用していないときにテストする方法について質問していると思います。基本を学ぶ前にフレームワークを学ぶことの悪い部分です。これは間違いだと思います(悲しいことに、私もこの間違いをしました)、多くの人がフレームワークを使おうとしていますが、彼らはまだphpについて十分な知識を持っていないので、多くの悪い習慣を作りました(例:私、今、私はphpを初めて使用したときにフレームワークから学んだことを忘れようとしています)ので、私の提案は、phpの基本を終えたときにフレームワークを使用することです(この部分はあなたの質問ではなく、私が見たときの提案です「私はフレームワークは得意ですが、フレームワークがないと失敗します」)。

私があなたの質問に戻った場合、ここでははい、サンプルクラスが必要(必須)です。そうでない場合、新しいサンプルオブジェクトをどのように作成できますか?いいえ、サンプルクラスとそのメソッドはExampleTestファイルに記述しないでください。関数を記述して、Exampleオブジェクトのメソッドをテストする必要があります(期待どおりに動作していますか?)。失敗し、このテストに合格するためのサンプルクラスとメソッドを記述します(http://www.phpunit.de/manual/current/en/test-driven-development.htmlを参照)。あなたのケースの例:

class ExampleTest extends PHPUnit_Framework_TestCase{
   require_once('../classes/exampe.php');

   protected $object;

   protected function setUp() {
    $this->object = new Example;
    //we will use object to test it.
   }

   function testAddingMustReturnIntegerValue(){ //codes to check is it really integer? }
   function testAddingNegativeValuesForbidden(){ //codes to check when we try to add negatives it shouldn't perform this action }

   //some other thing that we are expecting from add and other methods

}

これは非常にダミーの例ですが、私が言っていることを理解していただければ幸いです。

ps:私はネイティブスピーカーではないので、英語について申し訳ありません。私があなたの質問を理解せず、これが役に立たない場合は、削除できるように私に知らせてください。

于 2013-01-18T08:47:07.053 に答える