У меня есть этот метод в BrandBehavior, и я хочу его протестировать.Как проверить это поведение с помощью PHPUnit в CakePHP 3.0?
public function setCurrentBrandId(Entity $entity)
{
if (!isset($entity->brand_id) or empty($entity->brand_id)) {
$entity->brand_id = $this->session->read("Brand.id");
}
}
Я хочу проверить, действительно ли этот метод устанавливает BrandID. Не могли бы вы привести мне пример, как я должен проверить это? До сих пор я почти ничего не покрывал.
public function setUp()
{
parent::setUp();
$this->Progress = new BrandsBehavior();
}
public function testSetCurrentBrandId()
{
}
Если вам нужно что-нибудь еще, дайте мне знать и просто чтобы вы знали, что я начинаю с испытаниями и тестированием.
Спасибо за ответ Xymanek. Тогда у меня есть еще несколько вопросов. Я фактически вставляю сеанс $ this-> в метод initialize, и я пытаюсь издеваться над ним в методе тестирования. Я не получаю эти строки внутри метода теста - // Создаем заглушку для класса SomeClass. $ stub = $ this-> createMock (SomeClass :: class); Я получаю то, что является SomeClass, и что это должен быть сеанс, но я не понимаю, что такое класс? Спасибо за советы. Я использую все три из них. –
SomeClass :: class возвращает имя класса (с пространством имен) в виде строки – Xymanek
Первый метод в моем классе тестирования выглядит следующим образом. public function testSetCurrentBrandId() { $ stub = $ this-> createMock (Session :: class); $ stub-> method ('setCurrentBrandId') -> willReturn (1); $ this-> assertEquals (1, $ stub-> setCurrentBrandId()); И это то, что он возвращает: Попытка настроить метод «setCurrentBrandId», который не может быть сконфигурирован, поскольку он не существует, не был указан, является окончательным или является статическим Означает ли это, что у меня нет доступа к классу, который я пытаюсь проверить? –