我正在为我的项目编写测试,在单元测试后,我现在 写FunctionalTest。
但在功能与硒测试的目标之间,我有点迷失。
功能测试是否仅用于测试是否,无论我发送给谁 任何页面(主要是POST),它应该返回我期望的(200,302, 404,500),还是还有更多? (如测试返回的页面是否为 我期待的一个(比如“登录页面”?或者这个测试应该在Selenium中?)
因为到目前为止,我的F测试只是一堆函数
每个assertStatus
,我觉得它有点无用。
我相信我可以做得更多,但不知道为什么。
您在功能测试中测试了什么?
答案 0 :(得分:8)
要回答您的问题,可能更容易同时查看所有三种类型的测试。
单元测试 - 测试单个代码单元。例如,如果我有一个Item
类,它构成了电子商务网站的一部分,我会进行一些单元测试来测试Item类是否按预期运行。这可能包括一个测试,以证明搜索函数返回符合特定条件的项目。
功能测试 - 为了测试当各个单元组合在一起时,它们按预期一起工作。例如,为了使搜索功能起作用,我们希望发送一个特定的RESTful URL来搜索一个项目,该项目将返回一个特定的响应。它将使用我们的控制器和模型类来执行代码并实现完整的功能。
验收测试 - 也称为Selenium测试是一组更大的测试。这些测试用户可能会运行的场景,可能涵盖许多功能测试,而这些测试可能包含许多单元测试。这些更关心的是处理用户旅程或场景,而不是单独的功能。
对于FunctionalTests中使用的断言类型,我还在响应对象上使用assertFalse
方法使用了assertTrue
和getContent
。