Skip to content

polidog/TestRunkit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 

Repository files navigation

このクラスについて

人生を楽しく生きる為に、テストを楽にしようということで作りました。
cakePHPのunitTest書く時に便利だと思います。

※必ずRunkitを入れておく必要があります。
Runkitのインストール方法は以下の通り


git clone https://github.com/zenovich/runkit.git
phpize
cd runkit
./configure
make
make install

vi /etc/php.ini

[runkit]
extension=runkit.so
runkit.internal_override=1

簡単な使い方

メソッドを書き換える

<?php
class Hoge
{
   public static function huga() {
       return true;
   }

}

このHogeクラスのhugaメソッドの戻り値をfalseに変更させていみます。

<?php
require_once('test_runkit.php');
// Hogeクラスのhugaメソッドを書き換える
TestRunkit::swapMethod('Hoge','huga' );
if ( Hoge::huga() ) {
    echo "なまくらと申したか\n";
}
else {
    echo "拙者はさような事は...\n";
}
// 元に戻す
TestRunkit::clearSwapMethod();
if ( Hoge::huga() ) {
    echo "なまくらと申したか\n";
}
else {
    echo "拙者はさような事は...\n";
}



実行結果は以下のようになります。


拙者はさような事は…
なまくらと申したか

関数を書き換える

function runTest() {
	echo "オラオラオラオラオラ\n";
}

echoする際に「無駄無駄無駄無駄無駄無駄無駄無駄」に変更する。
そしてオラオラに戻す。

TestRunkit::swapFunction('runTest','','echo "無駄無駄無駄無駄無駄無駄無駄無駄\n";');
runTest();
$reuslt = TestRunkit::clearSwapFunction();
runTest();

なんかあんまり役に立たないかもしれないと思う方も多いかと思いますが、Testコードを書いててモックを使う程じゃないけどー的なところで意外と役に立ちます。

About

runkitを楽しくするためのツール

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages