Я пишу CakePHP Unit Test для одного из моих контроллеров. Контроллер имеет несколько вызовов метода AuthComponent::user() для чтения данных текущего пользователя. Есть 3 варианта использования: AuthComponent::user() (без параметров, выборки всего массива) AuthComponent::user('id') (выбирает идентификатор пользователя) AuthComponent::user('name') (выбирает имя пользователя) Я пробовал два способа издеваться над AuthComponent в своем тесте: // Mock the Controller and the […]
Я пишу некоторые модульные тесты для контроллера, в котором поведение ответа немного отличается, в зависимости от того, является ли $this->request->is('ajax') . Я просматривал документацию для тестирования контроллеров , но я не могу найти способ имитировать запрос, сделанный через AJAX. Есть ли способ отправить заголовки testAction() чтобы я мог установить заголовок X-Requested-With? Изменить: вы можете обойти […]
У меня есть тестовый набор, работающий на PHPUnit, с использованием среды PHPStorm. Но один из тестов, которые были неудачны из-за следующей проблемы, PHP Warning: Cannot modify header information – headers already sent by … Я исправил это, добавив аннотацию @runInSeparateProcess . Я смог успешно запустить все тесты в терминале. Но когда я пытаюсь запустить тесты […]
У меня возникают проблемы с запуском phpunit-тестов в нашем приложении symfony. Я использую следующий код утверждения: namespace Main\MyBundle\Tests\Controller; use Symfony\Bundle\FrameworkBundle\Test\WebTestCase; class DefaultControllerTest extends WebTestCase { public function testIndex() { $client = static::createClient(); $crawler = $client->request('GET', '/'); var_dump( $client->getInternalResponse()); //checking home page availability $this->assertEquals(200, $client->getResponse()->getStatusCode()); } } Однако я все время получаю отказ, как вы можете […]
У меня есть приложение, основанное на Zend Framework, которое я пытаюсь использовать phpunit для создания скелетов для тестовых случаев. Phpunit, похоже, не может найти родительские классы классов, которые я пытаюсь создать для: phpunit –skeleton-test Default_Model_Person ../application/models/Person.php PHPUnit 3.5.11 by Sebastian Bergmann. PHP Fatal error: Class 'X1_Db_Table_Auditable' not found in /path/to/application/models/Person.php on line 3 Fatal error: […]
Я пытаюсь объединить тесты, модифицирующие примеры кода других людей, и каждый раз, когда я догадываюсь, что мои тесты работают без ошибок, я просто получаю те же ошибки, когда ожидаю, что они пройдут. В Интернете нет большой документации, и я действительно не знаю, куда еще пойти с этим. Может ли кто-нибудь увидеть, где в моем коде […]
Я слежу за общими инструкциями Mockery и PHP-Unit, включая введение Джеффри Пути в тестирование Laravel с помощью PHP-Unit и Mockery. Однако для этого приложения – мы в порядке с зависимостью от Eloquent и скорее не создадим класс репозитория. Мы умеем издеваться над методами экземпляров нашей модели Widget. Тем не менее, мы используем привязку модели Route: […]
Я работаю над тестом в phpunit, и у меня проблема. У меня есть публичная функция в моем классе, которую я пытаюсь проверить. В зависимости от параметров, переданных методу, защищенная функция также в моем тестовом классе будет вызываться один или два раза. В настоящее время у меня есть тест, чтобы проверить правильность возвращаемых данных, но я […]
Здесь мой метод модели основан на config() global; public function getGroup() { if(config('app.pages.'.$this->group.'.0')) { return $this->group; } return "city"; } Здесь я пытаюсь проверить этот метод в своем модульном тестовом классе; public function testGetGroupReturnsCityAsDefault() { $response = new Response(); $response->group = "town"; $test = $response->getGroup(); dd($test); } Ошибка, которую я получаю; Error: Call to a […]
Когда вы используете композицию, вы можете высмеивать другие объекты, из которых зависит ваш класс под тестом, но когда вы используете наследование, вы не можете издеваться над базовым классом. (Или вы можете?) Обычно я стараюсь отдать предпочтение композиции над наследованием , но иногда наследование действительно кажется лучшим инструментом для работы – ну, по крайней мере, до […]