PlayFramework中FunctionalTest的目标是什么?

PlayFramework中FunctionalTest的目标是什么?,playframework,functional-testing,Playframework,Functional Testing,我正在为我的项目编写测试,在单元测试之后,我现在 写作功能测试 但是在功能测试和硒测试之间,我有点迷失了 功能测试只是为了测试,不管我发了什么 任何一个页面(大部分是POST),它都应该返回我所期望的(200302, 404500),或者还有更多?(如果返回的页面是 我期望有一个(比如“登录页面”?或者这个测试应该是Selenium?) 因为到目前为止,我的F测试只是一组带有 assertStatus,我觉得有点没用。 我相信我能做得更多,但不知道为什么 您在功能测试中测试了什么?为了回答您的问

我正在为我的项目编写测试,在单元测试之后,我现在 写作功能测试

但是在功能测试和硒测试之间,我有点迷失了

功能测试只是为了测试,不管我发了什么 任何一个页面(大部分是POST),它都应该返回我所期望的(200302, 404500),或者还有更多?(如果返回的页面是 我期望有一个(比如“登录页面”?或者这个测试应该是Selenium?)

因为到目前为止,我的F测试只是一组带有
assertStatus
,我觉得有点没用。 我相信我能做得更多,但不知道为什么


您在功能测试中测试了什么?

为了回答您的问题,将这三种类型的测试放在一起比较容易

单元测试-测试单个代码单元。例如,如果我有一个
项目
类,它构成了一个电子商务站点的一部分,我将有许多单元测试来测试项目类是否按预期运行。这可能包括一个测试来证明搜索功能返回符合特定条件的项目

功能测试-测试单个单元组合在一起时,它们是否按预期工作。例如,为了使搜索功能正常工作,我们希望发送一个特定的RESTful URL来搜索一个项目,该URL将返回一个特定的响应。它将使用我们的控制器和模型类来执行代码并实现了完整的功能

验收测试-也称为Selenium测试,是一组更大的测试。这些测试用户可能运行的场景,可能涵盖许多功能测试,反过来可能包含许多单元测试。这些测试更关注处理用户旅程或场景,而不是单个功能


至于在FunctionalTests中使用的断言类型,我也使用了
assertFalse
assertTrue
,在响应对象上使用
getContent
方法。

Ok,所以如果我理解正确,函数测试非常简单。只需测试预期的返回状态。通过getContentd assertTrue/false,你测试什么?如果内容不为空?我测试内容是否为特定类型。例如,我测试了如果返回1项,则内容包含“找到1项”,如果预期有2项,则内容包含“找到2项”,以确保复数有效。这不应该更适合Selenium测试?(这就是我迷路的地方:/)可能。但这测试一个单一功能,没有其他任何东西,只是实现了单一功能需求。验收测试可能包括一个或多个功能测试。。。