Articles of unit testing

Как сбросить Mock-объект с помощью PHPUnit

Как я могу сбросить ожидания () для PHPUnit Mock? У меня есть макет SoapClient, который я бы назвал несколько раз в рамках теста, сбросив ожидания каждого прогона. $soapClientMock = $this->getMock('SoapClient', array('__soapCall'), array($this->config['wsdl'])); $this->Soap->client = $soapClientMock; // call via query $this->Soap->client->expects($this->once()) ->method('__soapCall') ->with('someString', null, null) ->will($this->returnValue(true)); $result = $this->Soap->query('someString'); $this->assertFalse(!$result, 'Raw query returned false'); $source = […]

макет atLeastOnce с конкретным значением, остальное не важно

Вопрос в PHP , но применим к любому языку с использованием инфраструктуры xUnit . Я хочу макет, который ожидает 140 вызовов метода. Мне нужно проверить, что по крайней мере один раз есть вызов с параметром 500 в качестве параметра. Мне все равно, если все вызовы 500, но мне нужен хотя бы один, который вызывается с […]

проблема, включая PHPUnit

Я хочу начать писать тесты для моего кода, поэтому я установил последнюю версию PHPUnit со следующими командами wget http://pear.phpunit.de/get/phpunit.phar chmod +x phpunit.phar mv phpunit.phar /usr/local/bin/phpunit http://phpunit.de/manual/3.8/en/installation.html то я добавил / usr / local / bin в мой путь к php.ini include, который выглядит так: include_path = ".:/Applications/MAMP/bin/php/php5.4.10/lib/php:/usr/local/bin" но я получаю следующие ошибки при посещении /my-app/test.php […]

Охват кода при отсутствии проверки защищенных / приватных методов с помощью PHPUnit

Я знаю, что можно проверить частные / защищенные методы с помощью PHPUnit, используя отражение или другие обходные пути. Но большинство источников говорят мне, что не рекомендуется писать тесты для частных методов внутри класса. Вы должны тестировать класс так, как если бы это был «черный ящик» – вы просто проверяете ожидаемое поведение, сравнивая входы с выходами […]

Как объединить тесты модулей модуля / приложения ZF2 в один вызов?

Я следую за соглашением ZF2 по хранению тестов в модулях, и все работает нормально, когда тесты запускаются из каждого модуля. То, что я хотел бы сделать, это иметь phpunit.xml корневого уровня, который вызывает отдельные тесты модулей и объединяет их для получения данных покрытия кода и других показателей. Проблема в том, что каждый отдельный набор тестов […]

PHPUnit не может найти класс исключения

Я использую namespacing в 5.3 и пытаюсь проверить ожидаемое исключение в PHPUnit с картой Symfony2. Я ожидаю, что будет выбрано исключение, и когда я использую $this->setExpectedException('ImageResizerException'); Я получаю следующую ошибку: PHPUnit 3.7.13 от Себастьяна Бергмана. Конфигурация читается из /var/www/branches/3.6.0/api/app/phpunit.xml.dist .E …………….. Время: 1 секунда, Память: 18.25Mb Была 1 ошибка: 1) AssetManagerBundle \ Tests \ Services […]

Почему статические методы являются неустойчивыми?

Почему статические методы являются неустойчивыми? Пожалуйста, продемонстрируйте (в PHP, если это возможно).

Есть ли способ отключить покрытие кода в PHPUnit для одного теста?

Каждый раз, когда я запускаю единичный тест в PHPUnit, также генерируется отчет о покрытии кода. У меня на компьютере старый компьютер, и если бы я мог отключить покрытие кода, когда мне это не нужно, это снизит нагрузку на мой процессор. Есть ли способ отключить покрытие кода на основе каждого теста? Я не мог найти какой-либо […]

Обработка Laravel HttpException в модульном тестировании

Одна из моих тестовых функций для модульного тестирования в Laravel продолжает выходить из строя. Я пытаюсь утверждать, что запрос конкретной страницы без выполнения определенных условий вызывает ошибку 403 FORBIDDEN. Моя тестовая функция: public function testNoAjaxCall() { $this->call('POST', 'xyz', array()); $this->assertResponseStatus(403); } В действии контроллера это направлено, у меня есть: if(!Input::has('ajax') || Input::get('ajax') != 1) { […]

PHPUnit не может найти класс TestCase

Для запуска моих тестов с использованием PHPUnit проекта я делаю следующее: php vendor/bin/phpunit tests/SomeClassTest.php который отлично работает с учетом следующего объявления класса: class SomeClassTest extends PHPUnit_Framework_TestCase { public function test_someMethod() {} } Но он терпит неудачу, когда я это делаю: use PHPUnit\Framework\TestCase; class SomeClassTest extends TestCase { public function test_someMethod() {} } Я получаю PHP […]