微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

用 sinon 存根从基类继承的受保护函数

如何解决用 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.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?