我正在写一个测试,检查我有多少金币。我正在使用typescrypt和量角器。
我有一个方法GetAmoutOfChips:
$('.grid').load("league_news1.php",
{'group_no':track_load,'leagueid':leagueid},
function() {
track_load++;
var $grid = $('.grid').masonry({
// set itemSelector so .grid-sizer is not used in layout
itemSelector: '.grid-item',
// use element for option
columnWidth: '.grid-sizer',
percentPosition: true,
gutter: 10
})
// layout Masonry after each image loads
$grid.imagesLoaded().progress( function() {
$grid.masonry('layout');
});
});
}
); //load first group
我想在测试中使用它。所以我正在做以下事情:
$(document).ready(function() {
function changeText(){
$("#myDiv").text('test')
}
setTimeout(changeText, 2000);
});
console.log#1返回我想要使用的值。 console.log#2返回undentified。所以我无法将变量传递给测试。如何将变量从方法传递给测试?
答案 0 :(得分:1)
您必须在然后中执行所有操作。您还可以在那里返回值以创建另一个承诺。
public static GetAmountOfChips(): PromiseLike<any> {
NavigateTo.myProfile();
browser.sleep(900);
let promise = MyProfile.Basic.chipsAmount.getText().then((chipAmount) => {
// this is executed asynchronously
MyProfile.Basic.close.click();
// return a value to create another promise
return parseInt(chipAmount);
});
return promise;
}
承诺可能会令人困惑,您可以找到更多here。
在测试中,您还必须在然后功能中进行检查。
Actions.Basic.GetAmountOfChips().then((chipAmount: number) => {
// test here not outside
expect(chipAmount).toBe(10);
});