我有一個測試分爲3個組件。主頁面對象頁面,頁面有問題的HomePage和測試本身。最新的module.exports的目的是什麼?
我想HomePage
擴展Page
對象。但是我發現了什麼是 - 如果在Page類我使用:
module.exports = new Page()
我得到的錯誤ERROR: Class extends value #<Page> is not a function or null
但是如果我使用
module.exports = Page
它完美的作品。
難道有人能解釋爲什麼這樣嗎?是因爲Page對象本身只是每個頁面的父對象構成的,例如HomePage
或LoginPage
或其他什麼頁面?
class Page {
constructor() {
this.title = 'My Page';
}
open(path) {
browser.url('/' + path);
}
}
module.exports = Page;
==
var Page = require('../page-models/Page');
class HomePage extends Page {
get username() { return browser.element('#username'); }
open() {
super.open('');
}
}
module.exports = new HomePage();
==測試本身
var HomePage = require('../page-models/home.page');
describe('Something great', function(){
it('tests this', function(){
HomePage.open();
...
讚賞任何幫助。 p.s.使用nodejs,webdriverio,mocha和chai。