我应该在TYPO3中的功能测试中模拟FE请求吗?

时间:2015-11-23 13:37:49

标签: typo3 functional-testing

我试图在TYPO3和整体范围内理解功能测试的概念。

我的目的是测试我的扩展控制器。为简单起见,我们想象一下,它只有两种方法:listAction()addAction($object)

我已经检查了一些Core测试,其中一个是来自Extbase的EnableFieldsTest,它执行以下操作:加载一些特制的扩展,模拟FE(通过特殊JsonRenderer.ts),调用{然后检查该扩展的{1}}和输出(specail JSON)。

所以,我决定对我的控制器进行相同的操作,模拟FE,调用我的listAction()。唯一的区别是我的扩展程序不使用JSON View,而是常用的Fluid,它会产生HTML。

为了使其按预期工作,我需要:

  1. 在我的扩展程序中进行了重大更改,因此它在测试上下文中输出JSON,但这对我来说似乎有些不好。
  2. 不要使用Core提供的listAction(),而只是检查用HasRecordConstraint输出的HTML,这看起来也很糟糕。
  3. 创建我的扩展的自定义版本,该版本输出预期的JSON并仅将其用作Fixture。但这使得这样的测试毫无用处。
  4. 因此,我在这一点上陷入困​​境,需要明白:

    1. 像我一样模拟FE请求是对的,还是我现在没有使用功能测试概念?
    2. 如果我想通过assertContains()测试对象创建并确保,那就是f.e.如果我存在该服务,或者我可以以不同的方式接听电话,那么就会发出对REST服务的请求吗?

1 个答案:

答案 0 :(得分:1)

自TYPO3 8开始,我们整合了验收测试,这些测试更符合您的需求。

  • 使用功能测试来调用操作并检查返回值,但不要使用前端
  • 使用验收测试来调用前端并检查插件的HTML输出。

最好是检查核心的验收测试。