0

我有 /src/app.php 包含我的 silex 应用程序,在这个应用程序中有一些翻译可以传递给 twig,效果很好:

$app['twig']->render('index.twig', array('title' => $app['translator']->trans('homepage'))); 

但在我的功能测试中,这会导致异常:

为 foreach() 提供的参数无效

所以我猜 $app['translator.messages'] 在测试中不存在。

在 createApplication() 方法的 /tests/functional/ApplicationTest.php 中,我可以 var_dump $this->app['translator.messages']并获取完整的数组。

但是在实际测试方法 var_dump 输出时:.bool(true)

在 app.php 中包含 translation.messages:

 $app['translator.messages'] = require_once  __DIR__ . '/../resources/locales/translations.php';

我错过了这里的一些步骤吗?

4

1 回答 1

0

这有点棘手。问题是您正在使用require_once. 这意味着仅在第一次测试时需要这些消息,而在后续测试中则不需要。

要解决您的问题,只需将其更改为require.

于 2011-10-26T07:26:04.173 回答