【发布时间】:2021-04-13 05:05:36
【问题描述】:
我正在尝试使用 JEST 为我编写的具有类似于以下静态属性的类编写测试:
class DataManager {
static #data = null;
static getData = () => {
return this.#data;
}
static initializeData = async () => {
await database(async (db) => {
const data = getSomeDataFromDatabase() //just example
this.#data = data;
});
}
}
现在,我想为我的 initializeData 方法做一个新的实现,返回一些模拟数据而不是去数据库,然后“getData”看看我是否得到了预期的结果。问题是我的#data 属性是私有的,我不想将它暴露给外界。有什么办法吗?
【问题讨论】:
-
为什么要使用
static? -
补充@Tibebes.M:……和why are you using
class? -
Tibebes.M & @Bergi 我不使用任何带有依赖注入机制的框架,我想避免在不同文件之间传播实例。此外,我需要一些可以在应用程序之间共享的内存数据。因为所有这些函数都使用相同的数据,所以我认为将它放在一个地方是一个好习惯,我认为一个类是一种合适的方式。
-
放在一个地方,是的,但是一个简单的模块或对象字面量就足够了。
classes 当你想实例化多个对象时应该使用。
标签: javascript testing jestjs ecmascript-next class-fields