2011-06-06 51 views
2

我正在为我的项目编写测试,并且在单元测试之后,我现在编写FunctionalTest的 。FunctionalTest在PlayFramework中的目标是什么?

但是,在功能与硒测试的目标之间,我有点失落。

是功能测试都只是在这里进行测试,如果,无论我送到 任何页面(主要在POST),它应该返回我的期望(200,302, 404,500),或有更多? (如测试,如果返回的页面是 一个我期待(如“登录页”?还是这个测试应该在硒?)

因为到目前为止,我的F检验只是与 assertStatus一堆功能对于每一个,我觉得这是一个有点用处。 我相信我可以做得更多,但不知道为什么。

你在你的功能测试考什么?

回答

8

要回答你的问题,它是可能更容易看到彼此并排的所有三种类型的测试。单元测试 - 测试单个代码单元。例如,如果我有一个Item类,它构成了电子商务网站的一部分,我将有大量的单元测试来测试Item类是否按预期工作。这可能包括一个测试来证明搜索函数返回符合特定条件的项目。

功能测试 - 为了测试当单个单元汇集在一起​​,它们按预期一起工作。例如,为了使搜索功能起作用,我们希望发送一个特定的REST URL来搜索一个项目,这将返回一个特定的响应。它会使用我们的控制器和模型类来执行代码并实现完整的功能。

验收测试 - 也被称为硒测试是一组更大的测试。这些测试用户可能会遇到的情况,可能涵盖许多功能测试,而这些测试又可能包含许多单元测试。这些更关注处理用户旅程或场景,而不是单个功能。

至于在FunctionalTests中使用的断言类型,我还通过在响应对象上使用getContent方法使用了assertFalseassertTrue

+0

好吧,如果我理解正确,功能测试非常简单。只需测试预期的回报状态。通过getContent和assertTrue/false,你测试了什么?如果内容不是空的? – 2011-06-06 12:07:03

+0

我测试内容是否属于某种类型。例如,我测试了如果返回1个项目,则内容包含'找到1项目',如果期望2个项目,则内容包含'找到2个项目',以确保复数工作。 – Codemwnci 2011-06-06 12:13:22

+0

这应该不是最适合硒测试? (这就是我迷失的地方:/) – 2011-06-06 12:14:00