在 HTTP 客户端,打开 用户 下面的这个 用户帐户 请求,这个请求测试的是用户帐户接口,请求用的 HTTP 方法是 GET,请求的地址是 /users 后面加上一个用户的 id, 成功获取到了这个用户帐户数据,得到的响应的状态码是 200 ,响应的数据里面会包含用户的 id,name 还有一个 avatar 属性。
请求一个不存在的用户,得到的响应的状态码应该是 404 ,响应的数据里面有个 message 属性,对应的值是没找到这个用户。
下面我们可以把这个测试转换成自动化测试。回到项目,在 user.test 里面,可以测试一下用户帐户 接口。先用 describe 创建一组测试,测试用户帐户接口,提供一个函数参数,在里面可以用 test 创建一些测试。
测试一下响应里应该包含指定的属性,给它提供一个函数参数,在这个测试,先请求一下要测试的接口,声明一个 response ,用 request ,把 app 交给它,然后用 get 方法请求一下 /users 后面加上一个用户的 id,这里就是 testUserCreated 里的 id 属性的值。
再对这个响应做出一些断言, expect response.status 应该等于 200,expect response.body里的 name 属性的值,toBe testUser 里的 name 属性的值。
expect response.body ,toMatchObject,匹配一个对象,这个对象里面应该有 id 属性,属性的值应该是 number ,还有一个 name 属性,属性的值的类型是 string ,还有一个 avatar 属性,对应的值是 null。
再用一个 test 创建一个测试,测试当用户不存在时,响应的状态码是 404。 提供一个回调参数,在测试里请求一下用户帐户接口,声明一个 response,等于 await,用 request,把 app 交给它,用 get 方法请求一下 /users/NaN 这个地址。
下面做出断言,expect response.status 等于 404。
在终端,运行一下测试。 提示有一个测试失败了, 期望看到的值是 404 ,但是其实上得到的值是 500, 回到项目,修改一下请求的地址,把这个 NaN 换成 -1 。
再回到终端,运行一下测试。这次测试的结果全部符合我们的预期,所以测试都通过了。