UnitTests не пройдены, тесты пройдены вручную - PullRequest
0 голосов
/ 20 августа 2010

В моем коде происходит что-то странное, поэтому я должен спросить.

У меня есть часть теста:

public function testGetAddresses()
{
    //$this->markTestIncomplete('Not implemented yet');
    $this->assertTrue($this->_prs->getAddresses() instanceof Crm_Collection);
}

Этот тест не пройден.

Но когда я делаю это:

if ($entity->getAddresses() instanceof Crm_Collection) {
    echo "TRUE!";
} else {
    echo "FALSE!";
}

Выводит TRUE!

Кто-нибудь знает, что происходит, или это может быть ошибка в phpunit?

Спасибо!

Ответы [ 3 ]

2 голосов
/ 20 августа 2010

Я сомневаюсь, что это ошибка PHPUnit. Поскольку вы вызываете метод getAddresses() для двух разных объектов, я полагаю, что в случае сбоя теста этот метод действительно возвращает что-то, что не Crm_Collection.

Есть ли вероятность, что метод getAddresses() может вернуть ноль или выдать исключение?

1 голос
/ 20 августа 2010

Почему Вадимбеляев сказал:

Я не думаю, что это проблема с phpunit, дважды проверьте ваш код.

Дополнительно вы можете использовать:

$this->assertType("Classname", $object)

, чтобы выполучить хорошую ошибку в случае неудачи.(Phpunit скажет вам «ожидаемый класс, получил ноль» вместо «ожидаемый истина, получил ложь» с помощью во время отладки :))

0 голосов
/ 20 августа 2010

Остальные тесты в порядке?Вы запускаете тесты из браузера?

Когда вы запускаете код PHP из командной строки, я настоятельно рекомендую указать правильный путь к php.ini.В противном случае PHP будет использовать значения по умолчанию, которые могут отличаться от вашего текущего php.ini

Не уверен, решит ли это вашу проблему, но это полезно знать.Однажды я потратил пару часов, прежде чем узнал об этом.

php -c "c:/program files/apache software foundation/Apache2.2/" -f /path/to/your/script.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...