用户登录

command + P,搜索 user.service,打开应用里的这个文件,在这个文件里,我们可以定义一个删除用户用的方法,名字叫 deleteUser,让这个函数接收一个 userId 参数,类型是 number。这个 userId 的值就是要删除掉的用户的 id 。

在函数里先准备一段查询,声明一个 statement,用一个字符模板组织一段查询,查询里可以使用 DELETE,删除掉 user 数据表里的数据,再用 WHERE 设置一个条件,条件是 id 栏目应该等于一个特定的值,用一个占位符表示这个值。

下面要去执行一下这段查询,const 方括号,data,等于 await,用 connection.promise,接着调用 query 方法,要执行的是 statement ,查询里的占位符的值是 userId。

最后让这个函数提供点数据,让它 return 上面的这个 data 。

在 src/user 下面新建一个测试文件,名字是 user.test.ts,在这个测试文件里可以先准备一下在测试里需要用到的一些东西。先导入 request ,来自 supertest ,一会儿用它请求应用接口。再导入 bcrypt,来自 bcrypt ,等会儿用它验证用户密码。 然后导入 app,来自上一级目录的 app ,它里面包含了应用的接口。

下面再导入 connection,来自上一级目录 app/database 下面的 mysql 模块。 再导入 signToken,它可以给用户签发令牌,这个东西来自上一级目录,auth 里的 auth.service。

再导入 deleteUser 还有 getUserById ,这两个东西来自当前目录下的 user.service 。

最后可以导入 UserModel, 来自当前目录下的 user.model。

在去准备一些测试里会用到的用户数据,声明一个 testUser,类型是 UserModel,它的值是个对象,里面有 name 属性,属性的值是用户名,还需要一个 password 属性,属性的值是用户的密码。

在测试用户相关接口的时候,要创建一个用户,这个 testUser 就是要创建的这个用户。

下面再添加一个 testUserUpdated,测试更新用户接口的时候会用到它,类型是 UserModel,它的就是更新用户的数据,里面有 name 属性,设置一下对应的值,再添加一个 password ,它的值是要更新的用户密码。

然后用 let 声明一个 testUserCreated,类型是 UserModel,在测试创建用户接口时候,可以把新创建的用户数据交给这个 testUserCreated。

在所有测试结束以后,可以把在应用里创建的测试用户删除掉,然后还得断开数据服务连接,这里用一个 afterAll 设置一下在所有测试结束以后要做的事情,先把创建的测试用户删除掉,可以判断一下,如果 testUserCreated ,就执行一下 deleteUser,要删除掉的用户的 id 是 testUserCreated 里的 id 属性。

下面再断开数据服务连接,执行 connection 上的 end 这个方法。

准备测试用户接口《 Node.js 服务端应用开发:自动测试 》

统计

12747
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点