2016-01-03 53 views
0

所以我有一段代碼:節點興農存根鏈狀功能

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。運行的我不確定如何存根的.getInnerHtml功能測試

sinon.stub(driver, 'findElement').returnsPromise(); 
sinon.stub(webdriver.By, 'css'); 

然而,當我得到一個錯誤:

driver.findElement(...).getInnerHtml is not a function 

我曾試圖改變driver.findElement返回一個getInnerHtml方法,是殘樁,並返回一個值,但我似乎無法破解這一個。

sinon.stub(driver.findElement).returns({getInnerHtml: sinon.stub().returns(value)}) 

任何幫助,將不勝感激。

回答

1

我已經找到了解決這一問題:

存根承諾

promise = sinon.stub().returnsPromise(); 
sinon.stub(driver, 'findElement').returns({getInnerHtml: promise}); 

這對我的作品作爲getInnerHtml返回一個承諾,driver.findElement返回與getInnerHtml一個對象,其中的一個功能這返回一個承諾。