【问题标题】:how to functional test sites with knp_pagination_sortable()?如何使用 knp_pagination_sortable() 对站点进行功能测试?
【发布时间】:2017-03-08 18:55:53
【问题描述】:

如何使用 knp_pagination_sortable() 对站点进行功能测试?

<th>{{ knp_pagination_sortable(foo) }}</th>

在浏览器中相同的 url 得到的内容与在功能测试中不同。

$crawler = $client->request('GET', '/ksiazka/?sort=a.wydawnictwo&direction=asc&page=1');
$this->assertGreaterThan(1, $crawler->filter('a:contains("ill")')->count());
//Failed asserting that 1 is greater than 1.

这个问题也被there指出了一个线索:

  • 底层分页库(knp-components)独立于 Symfony 的请求/响应系统并提取 $_GET 参数 直接

  • Symfony 的功能测试实际上并没有发出真正的 HTTP 请求,它们只是构造一个 Request 对象并传递它 通过应用程序。

【问题讨论】:

  • 相同的灯具?尝试转储请求内容并检查突出显示的数据
  • 无解,未解。别管它。用引用编辑了主要帖子。

标签: symfony phpunit knppaginator knppaginatorbundle


【解决方案1】:

似乎您正在测试带有变量的绝对地址,而控制器没有收到任何这些。

可能是 knp 分页器组件生成可排序的 url。尝试使用 knp-paginator 组件在测试中生成一个 url 或更好地检查您正在测试的 url

【讨论】:

  • ..我也犯了一个错误,说控制器没有接收查询参数(我曾经认为控制器必须有 {slugs_in_route_annotation}),但它通过控制器中的请求参数接收。 (忽略我的 cmets,我在大声思考,很快就会移除 cmets。)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-08-22
  • 1970-01-01
  • 2018-02-25
  • 2019-03-15
  • 2018-03-18
  • 2019-07-05
  • 2015-11-28
相关资源
最近更新 更多