我正在編寫單元測試平臺,我希望能夠基於我測試的Web服務中的每個函數動態生成一個函數。動態函數將以Web服務中每個參數的默認(正確)值生成,並允許它們用錯誤測試的不正確值交易。PHP可以像編寫Lisp宏一樣編寫額外的PHP函數嗎?
$arrayOfDefVals = array(123, 'foo');
testFunctionGenerator('function1', $arrayOfDefVals);
//resulting php code:
function1Test($expectedOutput, $arg1=123, $arg2='foo')
{
try
{
$out = function1($arg1, $arg2);
if($expectedOutput === $out)
return true;
else
return $out;
}
catch ($e)
{
return $e;
}
}
這讓我很快就會完全傳遞一個錯誤的參數,或任意數量的錯誤參數,一次測試所有的錯誤在web服務相扶。
我的主要問題是: 這甚至可能與PHP? 如果這是不可能的,是否有其他選擇?
編輯:我不是在尋找一個單元測試,我正在嘗試通過這樣做來學習。我沒有在這個代碼示例中尋找建議,這只是我想要做的一個快速示例。我只想知道這是否可能。
如果函數退出或輸出某種錯誤而不是返回錯誤輸入的結果會怎麼樣? – animuson 2012-01-06 18:34:28
出於好奇,你爲什麼要寫一個單元測試平臺,而不是使用已經存在的平臺? – Problematic 2012-01-06 18:39:16
...即http://www.phpunit.de/ – Gordon 2012-01-06 18:42:07