Articles of phpunit

Добавьте файлы в белый / черный список кода в `bootstrap.php` для PHPUnit

PHP_CodeCoverage 1.1 удалил аксессуар singleton для PHP_CodeCoverage_Filter который позволил нашим файлам bootstrap.php PHPUnit добавлять каталоги к белым / черным спискам. PHPUnit 3.5 использовал черный список для разделения классов на трассировки стека исключений, а CC использует белый список для ограничения отслеживания. Мы использовали обе эти функции. Как я могу получить экземпляр PHP_CodeCoverage_Filter который PHPUnit будет использовать […]

тестирование базы данных с двоичным типом в mysql с использованием phpunit

Я пытаюсь написать тесты, используя php для базы данных. У меня есть таблица, в которой хранится хэш пароля как двоичный. Как установить тестовые данные в наборе данных xml, например, здесь есть шестнадцатеричные данные, и я получаю данные об ошибках слишком долго для столбца. Спасибо. <dataset> <table name="subscription_ips"> <column>password</column> <row> <value>0x771C87E79B130E3FB966E424D7F1358D8DABBA0A26F288C0C1B5D8E3D95F2942100CA54B6824A7AC0964180A9426A1C37C371BA3FDBB000621FE175608C4B16C</value> </row> </table> </dataset> Но похоже, […]

Ошибка впрыскивания службы тестирования Laravel

Чтобы начать с вывода, я получаю эту ошибку: [ErrorException] Argument 1 passed to SomeValidatorTest::__construct() must be an instance of App\Services\Validators\SomeValidator, none given, called in ….vendor/phpunit/phpunit/src/Framework/TestSuite.php on line 475 and defined В приложении Laravel у меня есть сценарий под названием «SomeValidator.php», который выглядит так: <?php namespace App\Services\Validators; use App\Services\SomeDependency; class SomeValidator implements ValidatorInterface { public function […]

код покрытия xDebug и PHPUnit говорит 100%, на самом деле это не

У меня есть следующая функция: function foo($p) { if ($p == null) throw new Exception('bla'); if ($p == null) { throw new Exception('bla'); } […] } Мой тест для этой функции не охватывает строки, генерирующие исключение. Но PHPUnit говорит мне, что первый оператор «throw» – это coverd, второй – нет. Может быть, первый интерпретируется, но […]

mockingery-> shouldReceive (), проходящий, когда он не должен?

Я изучаю модульное тестирование в laravel, используя phpunit и насмешку. В настоящее время я пытаюсь проверить UsersController :: store (). Я издеваюсь над моделью пользователя и использую его для тестирования метода индекса и, похоже, работает. Когда я вывожу $ this-> user-> all (), тест терпит неудачу и когда его в нем проходит. При тестировании метода […]

Использование файлов YAML в качестве поставщика данных в PHPUnit (CIUnit)

Я пишу приложение, используя PHP CodeIgniter Framework. Я пытаюсь протестировать приложение, используя CI_Unit, с расширением PHPUnit. Чтобы проверить модель, я пытаюсь загрузить поставщика данных YAML, как это определено в документации PHPUnit, я получаю сообщение об ошибке. Если я перепутаю объект поставщика данных, я получаю еще одну ошибку. Если я предоставил ему ванильный PHP-массив, он будет […]

phpunit не находит никаких тестов с тегом Director xml, но делает с (некоторыми) файлами теги

У меня есть эта конфигурация: <?xml version="1.0" encoding="UTF-8"?> <phpunit backupGlobals = "false" backupStaticAttributes = "false" colors = "false" convertErrorsToExceptions = "true" convertNoticesToExceptions = "true" convertWarningsToExceptions = "true" processIsolation = "false" stopOnFailure = "false" stopOnError = "false" stopOnIncomplete = "false" syntaxCheck = "false" bootstrap = "test_bootstrap.php" > <testsuites> <testsuite name="UnitTests"> <file>unit/api/2/ApiControllerTest.php</file> <file>unit/api/2/RoutesTest.php</file> </testsuite> он запускает тестовые […]

Как выполнить единичный тест наследующих объектов?

Когда вы используете композицию, вы можете высмеивать другие объекты, из которых зависит ваш класс под тестом, но когда вы используете наследование, вы не можете издеваться над базовым классом. (Или вы можете?) Обычно я стараюсь отдать предпочтение композиции над наследованием , но иногда наследование действительно кажется лучшим инструментом для работы – ну, по крайней мере, до […]

PHPunit – ошибки

Когда ошибка, которую фреймворк PHPunit не ожидает, происходит, тестирование останавливается, а PHP выдает ошибку, но PHPunit не записывает, что это была ошибка. Как я могу убедиться, что PHPunit записывает его как ошибку.

Как выполнить код после trigger_error (…, E_USER_WARNING) в модульном тесте (PHPUnit)?

У меня такой код: class ToBeTested { function simpleMethod($param) { if(0 === $param) { trigger_error("Param is 0!", E_USER_WARNING); return false; } return true; } } и проверьте этот код: class SimpleTest extends PHPUnit_Framework_TestCase { function testSimpleMethod() { $toBeTestedObject = new ToBeTested(); $this->assertFalse($toBeTestedObject->simpleMethod(0)); } } Я знаю, как тестировать, если ошибка запускается ( $this->setExpectedException() ), но […]