Behat является очень хорошим инструментом, BDD/TDD/DDD ИМХО основа SOLID кодирования, но ...Как протестировать контекст Behat?
Я часто вижу проекты с использованием Behat с довольно сложными классами контекста, которые не тестируются.
Например: Sylius/TaxonomyContext или Sylius/ProductContext
/**
* @Given /^taxonomy "([^""]*)" has following taxons:$/
*/
public function taxonomyHasFollowingTaxons($taxonomyName, TableNode $taxonsTable)
{
$taxonomy = $this->findOneByName('taxonomy', $taxonomyName);
$manager = $this->getEntityManager();
$taxons = array();
foreach ($taxonsTable->getRows() as $node) {
$taxonList = explode('>', $node[0]);
$parent = null;
foreach ($taxonList as $taxonName) {
$taxonName = trim($taxonName);
if (!isset($taxons[$taxonName])) {
/* @var $taxon TaxonInterface */
$taxon = $this->getRepository('taxon')->createNew();
$taxon->setName($taxonName);
$taxons[$taxonName] = $taxon;
}
$taxon = $taxons[$taxonName];
if (null !== $parent) {
$parent->addChild($taxon);
} else {
$taxonomy->addTaxon($taxon);
}
$parent = $taxon;
}
}
$manager->persist($taxonomy);
$manager->flush();
}
Этот пример не «ракетостроение», но у него есть довольно много мест, где он не мог работать. Из моего опыта Behat Контексты могут стать довольно сложными.
Должен ли я также «доверять» своим контекстам так, чтобы они работали на 100% правильно? Или есть руководство/учебник, как я могу проверить Behat Contexts?
Что вы будете делать? Как ты делаешь это?
Возможно, это соответствует http://programmers.stackexchange.com/ better. Проверьте это: http://meta.stackexchange.com/a/68386/220423 – aemxdp
@aemxdp при обращении к другим сайтам часто полезно указать, что [перекрестная публикация не одобрена] (http: //meta.stackexchange. COM/теги/кросс-постинг/данные). См. Также: ** [Что происходит с Programmers.SE? Руководство по переполнению стека] (http://meta.programmers.stackexchange.com/q/7182/31260) ** – gnat
@gnat, кричит, я новичок в этом, спасибо. – aemxdp