Мои утверждения CasperJS кажутся слишком строгими.У меня есть функция, в которой я пытаюсь проверить имена изображений логотипов клиентов из массива, используя Casperjs.Однако я не могу использовать переменную из forLoop в casperJS.
Я понимаю, что, вероятно, существуют проблемы с подъемом, которые я не учитываю, но это не является основной проблемой.Я пробовал несколько вещей, чтобы решить проблемы с перемещением, такие как немедленно вызванные функции, пробовать блокировать блоки и использовать термин ES6 «Позволить» в моем цикле.Никто, кажется, не работает.Затем я замечаю, что если я просто жестко закодирую строку, которую должна представлять моя переменная, и вставляю console.log в мое утверждение теста PASSING, перед возвращением тест не пройден.
Вот мой ошибочный код
var clients = 'https://www.google.com/';
var logoArray = ["images/logos/AC.png", "images/logos/Affiny.png", "images/logos/ffintus.png", "images/logos/agileAsset.png"]
function checkClientsArrayTest() {
casper.test.begin('The layout is as expected', 10, function suite(test) {
casper.start(clients, function () {
casper.then(function () {
for (var i = 0; i < logoArray.length; i++) {
try { throw i }
catch (ii) {
console.log(ii);
console.log(i);
test.assertEvalEquals(function () {
return document.querySelectorAll('div.client_logo a img')[ii].getAttribute('src')
.match(logoArray[ii]).toString();
}, logoArray[ii], 'Test searches for Client Logos in DOM.');
}
}
});
}).run(function () {
test.done();
});
});
}
Если я изменю logoArray [ii] на жестко закодированную строку из первого индекса массива, он пропускается.Если я утешаю logoArray [ii], то, похоже, я этого ожидаю.Но если я передам переменную assert или даже вставлю в нее файл console.log, тест завершится неудачно со следующей
проверкой выполнения макета URL: https://www.google.com0 0 FAIL Test выполняет поиск клиентских логотипов в DOM.
type: assertEvalEquals
file: headlessTester.js
subject: null
fn: undefined
params: undefined
expected: "images/logos/AC.png"
Это проблема, из-за которой я ошибаюсь в подъеме (не должно произойти сбой, если вы вставите в регистратор, если это так, на самом деле),или это связано со строго структурированными утверждениями в CasperJS?