这是我用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(...)函数进行存根处理?
答案 0 :(得分:1)
首先,您通常不测试依赖项/依赖项方法。您仅测试您的代码。
第二,我想您是说您想检查是否正在调用()
。这意味着您必须array([1])
。
(1,)
是您应该检查的内容。
您的测试应类似于:
()
或者类似的东西,我不知道这段代码是否可以正常工作。但是,随时欢迎您尝试。