मैं इस पोस्ट में कुछ इसी तरह की तलाश में आया था। मैं इस testcase है:
/**
* test routing logic (numbers method returns an array of numbers and expected outputs to test)
* @dataProvider numbers
*/
function testRoute($input,$expected)
{
$route = new Route($input,'',false);
$route->route();
$this->assertEquals($expected,$route->routingResult);
}
और मेरे संख्या विधि यह है:
/**
* read pairs of numbers (input <tab> expected) from tests.input separater by tab
* return an array like this: array(array(number1,expected1), array(number2,expected2), ...)
* provide this array to my tests by returning it
*/
function numbers()
{
$testcases = file('tests.input');
$tests = array();
foreach($testcases as $test_case)
{
list($input,$output) = explode("\t",$test_case,2);
$tests[] = array(trim($input),trim($output));
}
return $tests;
}
क्या होता है आप PHPUnit से इस तरह एक आउटपुट मिलता है:
Starting test 'RouteTest::testRoute with data set #0 ('8596000000', 'rejected (dp not found)x')'.
F
Starting test 'RouteTest::testRoute with data set #1 ('8596000001', 'rejected (rejected by scheme)')'.
.
Starting test 'RouteTest::testRoute with data set #2 ('8596000003', '1599000003')'.
.
यह नहीं होगा जब तक परीक्षण विफल नहीं हो जाता है तब तक परीक्षण किए गए फ़ंक्शन का वास्तविक परिणाम बताएं लेकिन कम से कम आपको सभी जोरदार मानों को देखना होगा।
स्पष्ट प्रश्न ... क्यों? –
यह एक असामान्य अनुरोध है। ज्यादातर लोग ऐसा नहीं करना चाहते हैं। इस कारण से, इस तरह कुछ भी PHPUnit द्वारा लागू नहीं किया जाएगा। आपको इसे स्वयं करना होगा। – ryeguy
असंबद्ध प्रश्न, लेकिन आपको इसकी आवश्यकता क्यों है? "सामान्य रूप से", आपको परीक्षण के दौरान उत्पादन का उत्पादन नहीं करना चाहिए, क्योंकि वहां उद्देश्य को स्वचालित रूप से निष्पादित किया जाना चाहिए (अगर सबकुछ अच्छा हो तो मनुष्य को आउटपुट पढ़ना नहीं चाहिए) –