どんな書単位試験のPHPとは、手続き上のコードベース?
-
23-08-2019 - |
質問
私は主に納得のユニットテストは、たいがどのような手続きが必要かをコンセプトの大き、既存のコードベースの記述はクリアしました。10%未満なのでこのコードがオブジェクト指向が強い。
また複数のユニットテストの枠組み(アサ,SimpleTest、phpt).しかしませんただし、これらのいずれの試験手続きのコードです。どの枠組みに私の状況の例はありまユニット試験PHPを用いたOOPコードについて教えてください。
解決
できるユニット-試験手続きのカレンダー表示に問題ありません。やまだレコード店ディスクユニオンの運ばコードに混ぜます。
での申請は受け入れテストのレベルは、手続き上のPHPによるだろうが、価値のsuperglobals($_POST, $_GET, $_COOKIE
, 等) 決定行動と終了を含めたテンプレートファイルを吐きの時に書き出す出力に出力します。
いアプリケーション-レベルの試験をしたりすることも可能ですのsuperglobal値開始の出力バッファを保つためのバhtml洪水から画面);のページ主張に対しも内部のバッファ;やゴミのバッファです。なので、なにができるようなこと:
public function setUp()
{
if (isset($_POST['foo'])) {
unset($_POST['foo']);
}
}
public function testSomeKindOfAcceptanceTest()
{
$_POST['foo'] = 'bar';
ob_start();
include('fileToTest.php');
$output = ob_get_flush();
$this->assertContains($someExpectedString, $output);
}
でも大きな"枠組み"をも含まれ、このような試験をお伝えがある場合は、アプリケーション-レベルの特徴で働いております。これは本当に重要なの開発にも取り組んでいきまで力をコンホメーションする場合であっても該当しますこのデータベースコネクタが作品の見栄えを良くし、だいたいボタンをクリックし、見ることがあることはできますがログイン-ログアウトを通じて、データベースです。
を下回る水準が軽微な変動によって可変範囲からの機能を発揮による副作用(復trueまたはfalse)、または、その結果を返します。
変数に渡され明示的にパラメータとしては配列のパラメータと性能においまたは変数の設定にはいろいろな場所を通過したとして、暗黙的にグローバル変数?であるならば良明確な場合、単体テスト関数による(1)を含むファイルを保持機能、(2)供給の機能試験数値を直接、および(3)の出力と主張する技術を開発しているのです使用している場合は、グローバル変数に対して割り当てます。するには十分注意してとしては、上記の$_POST例)くnullの場合、グローバル変数と。でも特に良い試験は非常に小さい(5-10線の1-2の主張)を取り扱う場合には機能する押し引くと多くのグローバル変数.
他の基本的な課題であるかどうかの機能を仕事により出力、などを変化させることによりパラメータで渡され、true/falseです。最初の場合、試験がやりやすいのですが、再度、この両方の例:
// assuming you required the file of interest at the top of the test file
public function testShouldConcatenateTwoStringsAndReturnResult()
{
$stringOne = 'foo';
$stringTwo = 'bar';
$expectedOutput = 'foobar';
$output = myCustomCatFunction($stringOne, $stringTwo);
$this->assertEquals($expectedOutput, $output);
}
の悪い場合には、コードの作品による副作用を返します。trueまたはfalseでも試すことができ写易
/* suppose your cat function stupidly
* overwrites the first parameter
* with the result of concatenation,
* as an admittedly contrived example
*/
public function testShouldConcatenateTwoStringsAndReturnTrue()
{
$stringOne = 'foo';
$stringTwo = 'bar';
$expectedOutput = 'foobar';
$output = myCustomCatFunction($stringOne, $stringTwo);
$this->assertTrue($output);
$this->Equals($expectedOutput, $stringOne);
}
武器agiは、dexで下がらないboxerぐ.
他のヒント
どのユニット試験など、すべてがきのコードをあげていただけま番号の入力、期待するもの数の出力に出ていきます。のマーケティングが"デザイン、機能を追加して以降、お客様の試験としてくださいまだに古い機能を実装する予定です。
る場合でも、手続き上のコードベースでこの関数を呼び出する試験方法
require 'my-libraries.php';
class SomeTest extends SomeBaseTestFromSomeFramework {
public function testSetup() {
$this->assertTrue(true);
}
public function testMyFunction() {
$output = my_function('foo',3);
$this->assertEquals('expected output',$output);
}
}
このトリックのPHPコードを拠点は、多くの図書館コード干渉の走行テストの枠組みとしてコードベースの試験の枠組みとしては多くのコード関連の設定は、アプリケーション環境であるワールドワイドウェブブラウザのセッションでは、共通のグローバル変数など)。することというポイントができるなどの図書館のコードションを行うとともに、汚れを簡単なテスト(testSetup機能します。
の場合コード関数はありませんが、はただのシリーズのPHPファイルを出力する電力ホームページというのができます。コードできない分離異なる単位、単位試験がなくなるわけではありませんするのに使用します。まえによりoff時間を"受け入れテスト"のレベルの製品 セレン や Watir.これまでの自動ブラウザでトレージエンジンはインデックスページコンテンツとしての特定の場所です。
きを含めるようにしてください非oopコードをテストクラスを使用
require_once 'your_non_oop_file.php' # Contains fct_to_test()
やアサ定義する試験機能:
testfct_to_test() {
assertEquals( result_expected, fct_to_test(), 'Fail with fct_to_test' );
}