带有量角器的 Jasmine 自定义匹配器,用于检查浏览器标题
Jasmine custom matcher with Protractor for checking browser title
我正在编写一个用于量角器规范的 Jasmine 自定义匹配器,我想检查浏览器标题是否等于某个字符串。我无法让这段代码正常工作,在花费数小时调试它之后,我只能假设 browser
object 没有像我预期的那样在匹配器函数中被访问。当我修改匹配器函数以接受 browse.getTitle()
作为实际参数时,它工作正常,这使我得出了我的假设。谁能在这里找到问题并向我解释一下?
beforeEach(function() {
jasmine.addMatchers({
toBeOnPage: function(util, customEqualityTesters) {
return {
compare: function(actual, expected) {
var result = {};
result.pass = actual.getTitle() === expected.title;
return result;
}
};
}
});
});
var homepage = { url: 'Homepage URL', title: 'Homepage Title' };
describe('regression:', function() {
it('homepage loads successfully', function() {
browser.get('http://localhost/#/home');
expect(browser).toBeOnPage(homepage);
});
});
问题是getTitle()
returns一个承诺。解决它:
beforeEach(function() {
jasmine.addMatchers({
toBeOnPage: function(util, customEqualityTesters) {
return {
compare: function(actual, expected) {
return {
pass: actual.getTitle().then(function (title) {
return title === expected.title;
});
};
}
};
}
});
});
我正在编写一个用于量角器规范的 Jasmine 自定义匹配器,我想检查浏览器标题是否等于某个字符串。我无法让这段代码正常工作,在花费数小时调试它之后,我只能假设 browser
object 没有像我预期的那样在匹配器函数中被访问。当我修改匹配器函数以接受 browse.getTitle()
作为实际参数时,它工作正常,这使我得出了我的假设。谁能在这里找到问题并向我解释一下?
beforeEach(function() {
jasmine.addMatchers({
toBeOnPage: function(util, customEqualityTesters) {
return {
compare: function(actual, expected) {
var result = {};
result.pass = actual.getTitle() === expected.title;
return result;
}
};
}
});
});
var homepage = { url: 'Homepage URL', title: 'Homepage Title' };
describe('regression:', function() {
it('homepage loads successfully', function() {
browser.get('http://localhost/#/home');
expect(browser).toBeOnPage(homepage);
});
});
问题是getTitle()
returns一个承诺。解决它:
beforeEach(function() {
jasmine.addMatchers({
toBeOnPage: function(util, customEqualityTesters) {
return {
compare: function(actual, expected) {
return {
pass: actual.getTitle().then(function (title) {
return title === expected.title;
});
};
}
};
}
});
});