2013-06-16 3 views
0

Я пишу простую библиотеку, которую я могу повторно использовать в некоторых своих проектах. На данный момент он просто собирается заменить некоторых «немых» персонажей своим умным эквивалентом. Во всяком случае, я установил новый экземпляр laravel 4, затем побежал php artisan workbench jonnybarnes/dumbquotes. Затем я написал код в DumbquotesParser.php. В настоящее время он находится LARAVEL/workbench/jonnybarnes/dumbquotes/src/Jonnybarnes/Dumbquotes/DumbquotesParser.php. Поэтому я создал тестовый файл для этого в папке с установленными тестами:Как написать модульный тест в PHPUnit

<?php 

require __DIR__.'/../src/Jonnybarnes/Dumbquotes/DumbquotesParser.php'; 

class DumbquotesParserTest extends PHPUnit_Framework_TestCase { 
    public function testApostrophe() 
    { 
     $actual = DumbquotesParser::apostrophe('We\'re testing Jonny\'s apotrophes\' form'); 
     $expected = 'We’re testing Jonny’s apostrophes’ form'; 

     $this->assertEquals($actual, $excpected); 
    } 
} 

Однако это не работает. Я не совсем уверен, как получить phpunit для загрузки парсера. Я получаю следующий результат:

[email protected]:~/dumbquotes-bench/workbench/jonnybarnes/dumbquotes|testing ⇒ ./vendor/bin/phpunit tests 
PHPUnit 3.7.21-2-g268d9f1 by Sebastian Bergmann. 

Configuration read from /home/jonny/dumbquotes-bench/workbench/jonnybarnes/dumbquotes/phpunit.xml 

PHP Fatal error: Class 'DumbquotesParser' not found in /home/jonny/dumbquotes-bench/workbench/jonnybarnes/dumbquotes/tests/DumbquotesParserTest.php on line 8 
PHP Stack trace: 
PHP 1. {main}() /home/jonny/dumbquotes-bench/workbench/jonnybarnes/dumbquotes/vendor/phpunit/phpunit/composer/bin/phpunit:0 
PHP 2. PHPUnit_TextUI_Command::main() /home/jonny/dumbquotes-bench/workbench/jonnybarnes/dumbquotes/vendor/phpunit/phpunit/composer/bin/phpunit:63 
PHP 3. PHPUnit_TextUI_Command->run() /home/jonny/dumbquotes-bench/workbench/jonnybarnes/dumbquotes/vendor/phpunit/phpunit/PHPUnit/TextUI/Command.php:129 
PHP 4. PHPUnit_TextUI_TestRunner->doRun() /home/jonny/dumbquotes-bench/workbench/jonnybarnes/dumbquotes/vendor/phpunit/phpunit/PHPUnit/TextUI/Command.php:176 
PHP 5. PHPUnit_Framework_TestSuite->run() /home/jonny/dumbquotes-bench/workbench/jonnybarnes/dumbquotes/vendor/phpunit/phpunit/PHPUnit/TextUI/TestRunner.php:349 
PHP 6. PHPUnit_Framework_TestSuite->run() /home/jonny/dumbquotes-bench/workbench/jonnybarnes/dumbquotes/vendor/phpunit/phpunit/PHPUnit/Framework/TestSuite.php:705 
PHP 7. PHPUnit_Framework_TestSuite->runTest() /home/jonny/dumbquotes-bench/workbench/jonnybarnes/dumbquotes/vendor/phpunit/phpunit/PHPUnit/Framework/TestSuite.php:745 
PHP 8. PHPUnit_Framework_TestCase->run() /home/jonny/dumbquotes-bench/workbench/jonnybarnes/dumbquotes/vendor/phpunit/phpunit/PHPUnit/Framework/TestSuite.php:775 
PHP 9. PHPUnit_Framework_TestResult->run() /home/jonny/dumbquotes-bench/workbench/jonnybarnes/dumbquotes/vendor/phpunit/phpunit/PHPUnit/Framework/TestCase.php:776 
PHP 10. PHPUnit_Framework_TestCase->runBare() /home/jonny/dumbquotes-bench/workbench/jonnybarnes/dumbquotes/vendor/phpunit/phpunit/PHPUnit/Framework/TestResult.php:648 
PHP 11. PHPUnit_Framework_TestCase->runTest() /home/jonny/dumbquotes-bench/workbench/jonnybarnes/dumbquotes/vendor/phpunit/phpunit/PHPUnit/Framework/TestCase.php:831 
PHP 12. ReflectionMethod->invokeArgs() /home/jonny/dumbquotes-bench/workbench/jonnybarnes/dumbquotes/vendor/phpunit/phpunit/PHPUnit/Framework/TestCase.php:976 
PHP 13. DumbquotesParserTest->testApostrophe() /home/jonny/dumbquotes-bench/workbench/jonnybarnes/dumbquotes/vendor/phpunit/phpunit/PHPUnit/Framework/TestCase.php:976 

Fatal error: Class 'DumbquotesParser' not found in /home/jonny/dumbquotes-bench/workbench/jonnybarnes/dumbquotes/tests/DumbquotesParserTest.php on line 8 

Call Stack: 
    0.0002  231432 1. {main}() /home/jonny/dumbquotes-bench/workbench/jonnybarnes/dumbquotes/vendor/phpunit/phpunit/composer/bin/phpunit:0 
    0.0036  609112 2. PHPUnit_TextUI_Command::main() /home/jonny/dumbquotes-bench/workbench/jonnybarnes/dumbquotes/vendor/phpunit/phpunit/composer/bin/phpunit:63 
    0.0036  609344 3. PHPUnit_TextUI_Command->run() /home/jonny/dumbquotes-bench/workbench/jonnybarnes/dumbquotes/vendor/phpunit/phpunit/PHPUnit/TextUI/Command.php:129 
    0.0220 2346712 4. PHPUnit_TextUI_TestRunner->doRun() /home/jonny/dumbquotes-bench/workbench/jonnybarnes/dumbquotes/vendor/phpunit/phpunit/PHPUnit/TextUI/Command.php:176 
    0.0474 2638864 5. PHPUnit_Framework_TestSuite->run() /home/jonny/dumbquotes-bench/workbench/jonnybarnes/dumbquotes/vendor/phpunit/phpunit/PHPUnit/TextUI/TestRunner.php:349 
    0.0476 2640512 6. PHPUnit_Framework_TestSuite->run() /home/jonny/dumbquotes-bench/workbench/jonnybarnes/dumbquotes/vendor/phpunit/phpunit/PHPUnit/Framework/TestSuite.php:705 
    0.0477 2641112 7. PHPUnit_Framework_TestSuite->runTest() /home/jonny/dumbquotes-bench/workbench/jonnybarnes/dumbquotes/vendor/phpunit/phpunit/PHPUnit/Framework/TestSuite.php:745 
    0.0477 2641144 8. PHPUnit_Framework_TestCase->run() /home/jonny/dumbquotes-bench/workbench/jonnybarnes/dumbquotes/vendor/phpunit/phpunit/PHPUnit/Framework/TestSuite.php:775 
    0.0478 2642352 9. PHPUnit_Framework_TestResult->run() /home/jonny/dumbquotes-bench/workbench/jonnybarnes/dumbquotes/vendor/phpunit/phpunit/PHPUnit/Framework/TestCase.php:776 
    0.0510 2700216 10. PHPUnit_Framework_TestCase->runBare() /home/jonny/dumbquotes-bench/workbench/jonnybarnes/dumbquotes/vendor/phpunit/phpunit/PHPUnit/Framework/TestResult.php:648 
    0.0515 2719488 11. PHPUnit_Framework_TestCase->runTest() /home/jonny/dumbquotes-bench/workbench/jonnybarnes/dumbquotes/vendor/phpunit/phpunit/PHPUnit/Framework/TestCase.php:831 
    0.0515 2720768 12. ReflectionMethod->invokeArgs() /home/jonny/dumbquotes-bench/workbench/jonnybarnes/dumbquotes/vendor/phpunit/phpunit/PHPUnit/Framework/TestCase.php:976 
    0.0515 2720800 13. DumbquotesParserTest->testApostrophe() /home/jonny/dumbquotes-bench/workbench/jonnybarnes/dumbquotes/vendor/phpunit/phpunit/PHPUnit/Framework/TestCase.php:976 

Так как я могу получить фактическую загрузку парсера?

Изменение моего тестового файла так делает работу испытания:

<?php 

require __DIR__.'/../src/Jonnybarnes/Dumbquotes/DumbquotesParser.php'; 


class DumbquotesParserTest extends PHPUnit_Framework_TestCase { 
    public function testApostrophe() 
    { 
     $parser = new \Jonnybarnes\Dumbquotes\DumbquotesParser(); 
     $actual = $parser->apostrophe('We\'re testing Jonny\'s apostrophes\' form'); 
     $expected = 'We’re testing Jonny’s apostrophes’ form'; 

     $this->assertEquals($actual, $expected); 
    } 
} 

мне нужно поставить $parser = new \...\...\...(); в каждом тесте Do?

+1

В следующий раз просто добавьте свой собственный ответ, используя обычный механизм, и не изменяйте название. –

ответ

0

Вы также можете импортировать класс в пространства имён в глобальное пространство имен, как это (сразу после того, включают):

use Jonnybarnes\Dumbquotes\DumbquotesParser; 

Вы можете забыть о методе setUp() (так как вы просто тестирует статический метод здесь) и сохраните фактический код теста, который вы изначально разместили:

$actual = DumbquotesParser::apostrophe('We\'re testing Jonny\'s apotrophes\' form'); 
Смежные вопросы