У меня есть ClassA, который использует ServiceB. В определенном случае ClassA не должен ссылаться на какие-либо методы ServiceB. Теперь я хочу проверить это и проверить, что никакие методы не вызываются. Это можно сделать следующим образом: $classA->expects( $this->never() )->method( 'first_method' ); $classA->expects( $this->never() )->method( 'second_method' ); … Есть ли способ просто указать, что «этот метод не […]
Один вопрос вкратце: может ли phpunit использовать несколько поставщиков данных при запуске теста? Например, у меня есть метод, называемый getById, и мне нужно запустить для него как успешные, так и неудачные тестовые файлы. Успешные тестовые окна означают, что он может вернуть соответствующую запись. И для неудачного ввода вход может быть разделен на две категории: недействителен […]
Используя PHPUnit, я издеваюсь над pdo, но я пытаюсь найти способ подготовить несколько запросов к базе данных. $pdo = $this->getPdoMock(); $stmt = $this->getPdoStatementMock($pdo); $pdo->expects($this->any()) ->method('prepare') ->with($this->equalTo($title_query)) ->will($this->returnValue($stmt)); $title_stmt = $pdo->prepare($title_query); $desc_stmt = $pdo->prepare($desc_query); Я хочу передать что-то похожее на onConsecutiveCalls для метода «with», поэтому я могу подготовить несколько операторов, как показано выше. Как бы вы […]
Резюме Как я могу создать базовый класс, который расширяет PHPUnit_Framework_TestCase и использовать его для подкласса фактических тестовых примеров, не имея сам базовый класс, проверенный PHPUnit? Дальнейшее объяснение У меня есть ряд связанных тестов, для которых я создал базовый класс, который содержит некоторые общие тесты, которые должны быть унаследованы всеми тестовыми примерами: BaseClass_TestCase.php: class BaseClass_TestCase extends […]
Недавно я слышал, что многие люди спорят об использовании функций тестирования PHP, таких как PHPunit и SimpleTest, и их IDE выбора (Eclipse для меня). После того, как я искал тему, мне все же трудно понять плюсы и минусы использования этих систем тестирования для ускорения разработки. Если бы кто-нибудь мог объяснить это для меня на более […]
Я привык к веб-разработке с использованием LAMP, PHP5, MySQL плюс NetBeans с Xdebug. Теперь я хочу улучшить свое развитие, научившись использовать (A) правильное тестирование и (B) структуру. Поэтому я настроил CodeIgniter, SimpleTest и простую надстройку Xdebug для Firefox. Это очень весело, потому что maroonbytes предоставил мне четкие инструкции и настроенную настройку, готовую для загрузки. Я […]
У меня есть простой PHP-класс, который обертывает доступ к базе данных для извлечения пользователя и хочет его протестировать. В настоящее время у меня есть следующий код: Класс для тестирования: class UserTable { protected $tableGateway; public function __construct(\Zend\Db\TableGateway\TableGateway $tableGateway) { $this->tableGateway = $tableGateway; } public function getUserWithId($id) { return $this->tableGateway->select(['id' => $id])->current(); } } Единичный тест: […]
Я пытаюсь выполнить тестирование классов, которые я создал, но большинство классов имеют дело с базой данных. У меня есть классы, не связанные с базой данных, которые должны быть проверены на практике локально, но я в тупике, когда дело доходит до работы с базой данных, особенно удаленно. В руководстве показано использование PDO для доступа к локальной […]
Каков наилучший способ тестирования входов $_GET и $_POST в PHPUnit ? У меня есть класс, который санирует вход и хочет проверить, что он работает правильно при обработке фиктивных данных. Есть ли простой способ настроить переменные формы в PHPUnit или я должен просто передать проверку на вторичный класс / функции, которые кормят переменными формы, поэтому проверяйте […]
У меня есть форма, которая не связана с сущностью, но имеет ограничения, как указано здесь: http://symfony.com/doc/current/book/forms.html#adding-validation ContactBundle \ Tests \ Form \ Type \ TestedTypeTest :: testSubmitValidData Symfony \ Component \ OptionsResolver \ Exception \ InvalidOptionsException: опции "ограничений" не существует. Известны следующие варианты: «действие», «attr», «auto_initialize», «block_name», «by_reference», «составные», «данные», «data_class», «disabled», «empty_data», «error_bubbling», «inherit_data» […]