2016-03-18 5 views
0

В настоящее время я представляю Banstalkd для своего проекта Yii2, но у меня были некоторые проблемы для тестов. Примером является тестирование отправленной почты, прежде чем, когда единичный тест был синхронным, я проверил, была ли отправлена ​​почта, и правильный формат электронной почты, и если содержит какой-то текст, но теперь с Beastalkd я не знаю, что делать. Я планирую добавить сначала проверку, если работа закончена, а затем проверить остальные. Но как я могу сделать все?Тестирование работ Beanstalkd в кодификации

Я использую Codeception, и я проверил документацию http://codeception.com/docs/modules/Queue#.VuwE2x_I7eR, но я не вижу какой-либо метод, который помогает проверить статус задания и, во-вторых, если задание находится в другом контексте (консольное приложение), как я могу проверить все вещи? Я честно считаю, что все, что я могу сделать, просто проверить, была ли эта работа выполнена, но нет, если она не удалась.

Любая идея, ресурс или что-то еще, я был бы очень благодарен.

Существует часть Синхронного кода:

expect('email should be correct', $user->email)->equals('[email protected]'); 
    expect('password should be correct', $user->validatePassword('asdqwe123'))->true(); 
    expect('email sent', $model->sendEmail())->true(); 

    $this->specify('message has correct format', function() use ($model) { 

     expect('message file exists', file_exists($this->getMessageFile()))->true(); 

     $message = file_get_contents($this->getMessageFile()); 
     expect('message "from" is correct', $message)->contains(Yii::$app->params['supportEmail']); 
     expect('message "to" is correct', $message)->contains($model->email); 

    }); 

ответ

0

В этом случае Beanstalkd бы оказаться «швом» между отдельными частями приложения. Одна сторона помещает сообщение в очередь, и если вы можете проверить правильность сообщения и в очереди, это нормально. Даже наличие реального сообщения, помещенного в очередь, вероятно, слишком много для простого теста.

Аналогичным образом, чтение настоящего сообщения из очереди и его отправка по электронной почте может быть слишком большим. Сообщение из поддельного источника, а затем отправка полностью сформированного письма в поддельный класс отправителя электронной почты достаточно, чтобы доказать, что ваш код работает. Остальные - это другие, интеграция, тесты, следя за тем, чтобы сообщение можно было ввести, вынуть из очереди или отправить электронное письмо.

 Смежные вопросы

  • Нет связанных вопросов^_^