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
|
|