我正在寻找一种自动将对象的toString()方法用于隐式转换为字符串的方法。例如,假设您有此类:
class Dog {
name: string;
constructor(name: string) {
this.name = name;
}
public toString(): string {
return `${this.name} is my friend`;
}
}
然后,我会发现此测试中的两个断言中的第二个将失败:
test.only("Dog", () => {
const dog = new Dog("buddy");
expect(dog.toString()).toBe("buddy is my friend");
expect(dog as any as string).toBe("buddy is my friend"); // fails
});
我收到以下错误:
expect(received).toBe(expected) // Object.is equality
Expected: "buddy is my friend"
Received: {"name": "buddy"}
((注:如果我使用.toEqual
而不是.toBe
,则断言也会失败。)
我希望这样做,以便通过这个断言,即,当我通过诸如此类的隐式方法将Dog转换为字符串时(可能发生在以JavaScript项目开始的TypeScript项目中。)
是否有可能的任何建议?有什么方法可以修改Dog类以允许这样做吗?
我正在寻找一种自动将对象的toString()方法用于隐式转换为字符串的方法。例如,假设您有一个此类:class Dog {name:string; ...
expect(dog as any as string).toBe("buddy is my friend");