所以我有一段代码:
General.helpers.elementContains = function(selector, value) {
return driver.findElement(webdriver.By.css(selector)).getInnerHtml().then(function(contents) {
assert.equal(contents, value);
});
};
我想将getInnerHtml函数存根。我目前已经删除了driver.findElement和webdriver.By.css函数。我的driver.findElement函数返回一个使用节点模块sinon-stub-promise的承诺。
sinon.stub(driver, 'findElement').returnsPromise();
sinon.stub(webdriver.By, 'css');
然而,当运行测试时我不确定如何存根.getInnerHtml函数我得到一个错误:
driver.findElement(...).getInnerHtml is not a function
我尝试更改driver.findElement以返回一个getInnerHtml方法,该方法是stubbed并返回一个值,但我似乎无法破解这个。
sinon.stub(driver.findElement).returns({getInnerHtml: sinon.stub().returns(value)})
任何帮助都将不胜感激。
答案 0 :(得分:1)
我已经找到了解决这个问题的方法:
存根承诺
promise = sinon.stub().returnsPromise();
sinon.stub(driver, 'findElement').returns({getInnerHtml: promise});
这对我有用,因为getInnerHtml返回一个promise而driver.findElement返回一个带有getInnerHtml的对象,其中的函数返回一个promise。