gpt4 book ai didi

symfony - 使用 Behat 3 测试 Symfony2 电子邮件

转载 作者:行者123 更新时间:2023-12-04 17:47:56 24 4
gpt4 key购买 nike

我关注了 Behat 2.5 docs测试邮件。经过一些调整以匹配 Behat 3,我以以下代码结束(我删除了不相关的部分):

public function getSymfonyProfile()
{
$driver = $this->mink->getSession()->getDriver();

if (!$driver instanceof KernelDriver) {
// Throw exception
}

$profile = $driver->getClient()->getProfile();
if (false === $profile) {
// Throw exception
}

return $profile;
}

/**
* @Then I should get an email with subject :subject on :email
*/
public function iShouldGetAnEmail($subject, $email)
{
$profile = $this->getSymfonyProfile();
$collector = $profile->getCollector('swiftmailer');

foreach ($collector->getMessages() as $message) {
// Assert email
}

// Throw an error if something went wrong
}

当我运行这个测试时, 它抛出以下错误 :

exception 'LogicException' with message 'Missing default data in Symfony\Bundle\SwiftmailerBundle\DataCollector\MessageDataCollector' in vendor/symfony/swiftmailer-bundle/Symfony/Bundle/SwiftmailerBundle/DataCollector/MessageDataCollector.php:93
Stack trace:
#0 vendor/symfony/swiftmailer-bundle/Symfony/Bundle/SwiftmailerBundle/DataCollector/MessageDataCollector.php(122): Symfony\Bundle\SwiftmailerBundle\DataCollector\MessageDataCollector->getMailerData('default')
#1 features/bootstrap/FeatureContext.php(107): Symfony\Bundle\SwiftmailerBundle\DataCollector\MessageDataCollector->getMessages()

我的分析器配置如下:

# app/config/config_test.yml
framework:
test: ~
profiler:
enabled: true
collect: true

看来 Profile正确加载并且 MessageDataCollector来自 Swiftmailer确实存在,但它没有按预期工作。 有什么线索可以解决这个问题吗?

最佳答案

这不是您正在寻找的答案,但我很确定它会满足您的需求(也许更多)。
如果我可以建议,请尝试将 Mailcatcher 与此捆绑包一起使用:https://packagist.org/packages/alexandresalome/mailcatcher
您将能够轻松测试是否发送了电子邮件、主题是什么、点击正文中的链接等等...
此捆绑包中包含许多步骤。

关于symfony - 使用 Behat 3 测试 Symfony2 电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27061043/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com