我試圖避免20個左右的非常小的測試,每個測試都基本上測試了一個白色標籤站點列表並顯示一些基本信息。測試CasperJS中的URL列表
我有一個列表(數組)的網站,他們的URL,期望的標題和網站的名稱。
我想迭代數組,去每個URL和驗證標題是正確的。
像這樣:
var x = require('casper').selectXPath;
var white_labels = [
{
URL: "http://site1.com",
Title: "Site 1 Title",
Name: "Site 1"
},
{
URL: "http://site2.com",
Title: "Site 2 Title",
Name: "Site 2"
}
]
casper.test.begin('White Labels Test Suite', white_labels.length, function suite(test) {
var urls;
var i = -1;
casper.start(white_labels[0]["URL"], function() {
urls = white_labels;
});
casper.then(function() {
this.each(urls, function() {
i++;
this.echo("I: " + i);
this.thenOpen(urls[i].URL, function() {
this.echo("URL: " + urls[i].URL);
test.assertTitle(urls[i].Title, urls[i].Name + " title is correct");
});
});
});
casper.run(function() {
test.done();
});
});
當我運行此,我每次打印出「我」,這是正確的... 0,然後按1
然而,第一次測試失敗,因爲它返回的標題是網站2的標題,而不是網站1.第二個測試成功。
我對此感到莫名其妙。
工作就像一個魅力!很糟糕的是,我必須閱讀你的答案爲「更好地使用Javascript」!呃...有時真相會傷害你。謝謝! – 2014-09-26 21:38:05