API test helpers
这个库的目的是让你可以容易测试REST API
下面是一些提供给你的集成测试方法
| test helper | 用法 |
|---|---|
| seeApiSuccess() | 断言返回的响应使用了success响应宏(即返回了成功数据) |
| seeValidationError() | 断言返回码为422,并且返回了错误(当你return response()->error('message', 422);时Laravel会抛出一个验证错误,这里断言的就是接收到此内容) |
| seeApiError($status_code) | 断言具体的状态码错误,比方说401 |
| seeJsonKey($key) | 等价于->see('"'.$key.'"') |
| seeJsonValue($value) | 等价于->see('"'.$value.'"') |
| seeJsonArray($entity) | 等价于->see('"'.$entity.'":[') 当你想要得到一个数组时非常有用 |
| seeJsonObject($entity) | 等价于->see('"'.$entity.'":{') 当你想得到单个数据比方说一个订单的时候非常有用 |
避免在你的模型工厂中使用bcrypt()。因为这件减慢你的测试,只有当你需要知道user model创建的password时再使用它。(比方说:login,reset password的测试中)
下面是一些示例控制器和它们对应的集成测试方法
Routes.php
|
|
PostsController.php
|
|
CreatePostTest.php
|
|
不要忘了在你的测试方法中路由头部的
/api
JWT Auth Tests
当做测试驱动开发时,我们的大部分测试都会覆盖到被保护的接口。这些接口都需要认证。这个库提供了一些用来测试被保护的接口的方法,而无需再手动发送token
可用方法
以下方法与Laravel的test helper使用了同样的签名(get, post, put, delete, call)。
| authUserGet() | GET (验证通过情况) |
|---|---|
| authUserPost() | POST(验证通过情况) |
| authUserPut() | PUT(验证通过情况) |
| authUserDelete() | DELETE(验证通过情况) |
| authUserCall() | 自定义的方法、cookie、files、server等等(验证通过情况) |
你可以通过使用
$this->getAuthUser()来访问当前已经认证的用户,使用$this->getAuthUserToken(),他们在/tests/TestCase.php中是可用的。
示例
Routes.php
|
|
FavoritePostsTest
|
|
多租户应用的测试方法
如果你的应用和平台上有着多种用户,你希望有下面的test helper吗?->StudentGet(),->StudentPost(),->TeacherPost(),->TeacherGet(),等等
如果你打开了TestCase.php,你可以看到我们可以通过调用$this->getAuthUserToken()手动登录一个用户。这是我们一个创建User的工厂。
你的方法应该是找到所有的认证用户方法和变量,并且将其重命名为对应的租户名,然后修改Set[租户名]方法来获得该类型用户的工厂。
|
|
其他租户同理
Angular tests
ng-describe是预置的类库,它可以使你为你的angular app编写流畅的测试代码。
ng-describe使测试components, services, inject dependencies和mock ajax calls变得非常简单,你可以浏览它为注册登录组件编写的测试方法。
Angular 生成器
components, directives和service都自动生成了ng-describe spec 文件,你只需要实现测试用例即可。
forget_password.spec.js
|
|