我如何对依赖方法进行单元测试

时间:2019-01-17 16:15:38

标签: node.js unit-testing sinon

这是我用Typescript编写的代码; 我要测试专用的getFunc方法,并且redisClient的方法称为一次。 我使用supertest来调用API,但是我不能期望redis方法。

import { Request, Response, Router } from "express";
import * as redis from "redis";
const redisOption: redis.ClientOpts = {
    host: "127.0.0.1",
    port: 6379,
    detect_buffers : true,
    db: 0,
   retry_strategy: () => 60000
}
const redisClient: redis.RedisClient = redis.createClient(redisOption);

export class IndexRoutes {
    public router: Router;
    constructor() {
        this.router = Router();
        this.init();
    }
    public init() {
        this.router.get("/",  this.getFunc);
    }
    private getFunc = async (req: Request, res: Response) => {
        return res.status(200).send(await redisClient.set("test", "123"));
    }
}
  错误:未捕获的AssertionError:预期已被调用   只是一次,却被调用了0次

请帮助我,如何正确对redisClient.get(...)函数进行存根处理?

1 个答案:

答案 0 :(得分:1)

首先,您通常不测试依赖项/依赖项方法。您仅测试您的代码。

第二,我想您是说您想检查是否正在调用()。这意味着您必须array([1])

(1,)是您应该检查的内容。

您的测试应类似于:

()

或者类似的东西,我不知道这段代码是否可以正常工作。但是,随时欢迎您尝试。