用 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 (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...