3

プレーンな PHP で単体テストを使用してコードをテストする方法を知りたいです。

これに対する彼らのガイドラインはありますか。

また、MVC アーキテクチャを使用して Web サイトを作成するときに単体テストを行う方法についても説明します。

4

5 に答える 5

6

基本的に、この質問に対する答えは 1 つしかありません: PHPUnitです。

これは、PHP で最大のテスト フレームワークです。最もよく文書化され、ほとんどのユーザー、ほとんどの機能、業界標準。あなたが探しているすべて。マニュアルはこちらです。

MVCに関しては、テスト可能なコードを書くことは、プログラミングしているデザインパターンとは何の関係もありません.

于 2012-09-17T11:38:07.193 に答える
3

フレームワークがまったくなくても単体テストを作成できますが、PHPUnitまたはEnhancePHPから無料で入手できる多くの概念を自分で作成していることがわかります。

特に、フレームワークには、テストをアサートできるヘルパー、テストで使用する偽物を提供するヘルパー(MVCパターンを使用している場合に特に役立ちます)、および結果を実行して表示する方法があります。

単体テストフレームワークのソースコードを見ると、これらすべてのヘルパーがどのように機能するかがわかります。最終的には、フレームワークを作成するよりも習得する方が迅速です。

手動テストの例を次に示します。結果が正しくない場合、または例外がある場合、テストは失敗します。

$passed = true;
try {
    $result = $target->addTwoNumbers(5, 2);
    $passed = 7 === $result;
} catch (Exception $e) { 
    $passed = false;
}

return $passed;

フレームワークを使用すると、これははるかに読みやすくなります。

$result = $target->addTwoNumbers(5, 2);
Assert::areIdentical(7, $result);

どちらの例でも、テストを設定するためのコードを省略しています。つまり$target、比較に意味がないため、作成します。

于 2012-09-17T11:41:07.143 に答える
2

SimpleTest ( http://www.simpletest.org/ )もあります。これは非常に軽量です。他の多くのテストスイートの荷物なしで。

Selenium などの自動化ツールを使用することもできます。これは、ユーザーが座ってマウスをブラウジングするのを本質的に模倣します。明らかに、それをトレーニングしてテストを割り当てる必要があります。

于 2012-09-17T11:46:19.260 に答える
1

このチュートリアルを試す

http://pear.php.net/manual/en/package.php.phpunit.intro.php

単体テストには PHPUnit を使用するのが最適です。

于 2012-09-18T04:39:29.230 に答える
1

もちろん、PHPUnit やその他の単体テスト フレームワークを使用することもできます。プロジェクトに多くの余分なコードを追加するという考えが好きではなかったので、自分で単体テスターを書きました。

基本的な単体テストには、2 つの PHP ファイル/クラスのみが必要です。1 つは実際のテストを実行し、もう 1 つは単体テストの基本クラスです。

これを行う方法を示すコードをブログに書きました。単体テスターの動作はこちらで見ることができます。

私の認識では、SO での質問がこのようにポップアップする場合、ほとんどの答えは次のとおりです。自分で xxx を使用しないでください。ただし、これにはペナルティが伴います。コードが肥大化し、完成したプロジェクトが大きくなり、保守が難しくなり、サードパーティのコードに依存するようになります。

于 2012-09-17T11:50:53.317 に答える