用户注册模块中的单元测试和功能测试之间的差异

时间:2017-02-24 20:12:40

标签: php phpunit tdd symfony

我想写注册模块。我假设我需要创建实体模型User,其中包括属性id,email,password和active。

在这种情况下,我应该为这个类中的每个get和set方法编写测试,还是应该编写一个方法setUp,它将创建新对象User然后设置参数?

我如何编写测试,检查我的用户对象是否一切正常,另一个检查是否例如。电子邮件无效时,测试会抛出异常吗?

我知道单元测试是如何工作的,但我仍然有问题决定测试应该是单位还是功能

1 个答案:

答案 0 :(得分:3)

单元测试是您为类中的方法编写的代码。它允许根据输入参数测试特定方法的工作方式。即你可以在你的实体中测试setEmail($email)方法,特别是如果你验证它等等。PHPUnit是很好的工具。单元测试意味着您了解了您正在测试的代码的所有内容。

功能测试是用于产品功能测试的测试。即您可以测试单个功能,如用户密码检索或注册。它回答问题are we building software properly?。因此,它验证了您的流程。与单元测试相比,您实际上不必知道方法是如何工作的。有很多工具 - Symfony有oneBehat是非常强大的工具,允许使用自然语言(实际上是Gerkins)来指定测试。

验收测试可确保您的产品满足客户要求。它回答了问题did we build the right thing?。有很多方面包括可扩展性,安全性,会议标准等,可以在验收测试中进行测试。