讓我們直指點。Zombie/Mocha browser.wait(...)方法不會執行。
下面是一段代碼,我使用的,因爲我檢查Welcomexxx應測試Web應用程序(這在目前只顯示<p>Welcome!</p>
)
var app = require('../app');
var assert = require('assert');
var Browser = require('zombie');
describe('home page', function() {
var browser, server;
before(function() {
server = app.listen(3000);
browser = new Browser({site: 'http://localhost:3000', debug: true});
});
it('should show welcome', function(done) {
// Wait until page is loaded
function pageLoaded(window) {
console.log('4');
return window.document.querySelector(".container");
}
console.log('1');
browser.visit("/");
console.log('2');
browser.wait(pageLoaded, function() {
console.log('3');
assert.ok(browser.success);
assert.equal(browser.text('p'), 'Welcomexxx!');
console.log(browser.html());
});
done();
});
after(function(done) {
server.close(done);
});
});
這個測試不應該通過!不歡迎!。然而無論我測試什麼,它總是通過。 正如您所看到的,我在代碼中添加了一些控制檯輸出以查看發生了什麼。令我驚訝的是控制檯中沒有顯示3和4。這基本上意味着等待功能不會執行。
這裏是無故障測試的預期輸出:
home page
✓ should show welcome
GET/200 5ms - 15b
1 passing (63ms)
,這是我對上面的測試輸出:
home page
1
Zombie: Opened window http://localhost:3000/ //zombie debug line
2
✓ should show welcome
1 passing (22ms)
,你可以看到裏面還有沒有「得到「在輸出中的聲明。另外殭屍似乎一般工作,因爲browser.visit顯示控制檯輸出指示發生了什麼事情。
任何人都可以闡明爲什麼發生這種情況?我有能力運行與領班開始或節點應用程序的應用程序,我可以在我的瀏覽器中看到,一切工作正常(理論上)。
你有沒有這個運氣?我看到完全相同的問題。 – Martin