如何解决用 sinon 存根从基类继承的受保护函数
我对如何测试来自超级(继承基类)的受保护方法感到困惑
这是我在基类中的内容
1.hashCode
在另一个类中我扩展了它:
export default class DataStoreBase {
protected _url: string;
protected _db: any;
protected _logger: LoggingService;
protected _name: string;
protected _type: string;
public constructor(logger: LoggingService,name: string,config: DatastoreConfig) {
this._url = "";
this._logger = logger;
this._name = name;
this._type = "";
if (config.datastoreType === "cloudant") {
const res = this.getCloudantClient(config.cloudant);
this._url = res.endpoint;
this._db = res.db;
this._type += "Cloudant";
this._logger.info({message: `${name} instance has been initialized.`});
} else if (config.datastoreType === "couchdb") {
const res = this.getCouchDBClient(config.couch);
this._url = res.endpoint;
this._db = res.db;
this._type += "CouchDB";
this._logger.info({message: `${name} instance has been initialized.`});
} else {
throw (new Error(CONfig_INVALID_ERROR.message));
}
}
}
如你所见 _db.find 来自基类,它是受保护的变量 现在我想存根 rhis._db.find 我试试这个
export default class SearchesDatastore extends DataStoreBase {
private bulkSize: number;
private designDocsPath: string;
....
public async getArchivedSearches() {
const _items = await this._db.find(q)
const items = _items.docs;
if (items.length <= 0) {
this._logger.warn({ message: `No expired search queries found.` });
return tobedeleted;
}
bookmark = _items.bookmark;
for (let i = 0; i < items.length; i++) {
tobedeleted.push(items[i])
}
return tobedeleted;
但不会发生存根 如果有人可以提供帮助,我真的很困惑,不胜感激
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。