Итак, я пытаюсь написать вспомогательную библиотеку, которая поможет в написании тестов, тесты выполняются асинхронно, но мне нужно заставить их запускаться последовательно. То, как это делается с помощью funcunit, тестовой среды, которую мы используем на работе, заключается в использовании вложенных обратных вызовов, но они в конечном итоге составляют 30 слоев, трудно писать, трудно поддерживать и т. Д. И т. Д.Возвращает массив функций?
У меня есть помощник функции, makeTest и clickOn:
helpers.makeTest = function (f) {
if(!helpers.tests)
helpers.tests = //I want this to be an array of the functions returned by clickOn//;
if(helpers.tests.length)
{
helpers.tests.shift()();
}
else
{
ok(true, 'Tests passed');
}
};
helpers.clickOn = function() {
var args = Array.prototype.slice.call(arguments),
selector = args.shift();
return function() {
var el = S(selector);
el.exists(function(){
S.wait(100, function(){
el.click(function(){
helpers.makeTest();
});
});
});
}
}
и я хочу, чтобы иметь возможность писать тесты, такие как:
test("copy folder with helpers", function() {
helpers.makeTest(function(){
helpers.clickOn("#openDialogFolder");
helpers.clickOn("input#-2");
helpers.clickOn("a#copyTrigger");
});
});
Однако все, что происходит, функция передается makeTest возвращает неопределенное значение, я хочу, чтобы это возвращать массив функций, любые указатели?
EDIT: Кажется, я решил проблему, вместо того, чтобы щелкнуть по возврату функции, создав helper.queue = [] и нажав на функцию, созданную clickOn, в эту очередь. Что я могу получить доступ из makeTest
Я не уверен, что следую за вами, у меня есть вспомогательный объект с теми функциями, которые уже определены. clickOn уже успешно создает функцию, которая щелкает элемент, с чем я сталкиваюсь, затем получает доступ к этим функциям в makeTest. – Quirkles
Извините, я думаю, что, возможно, у меня скрестились провода, вы можете настроить скрипку, и я посмотрю, смогу ли я помочь –
, здесь не нужно, я решил проблему, создав хелпер.акту и сохранив там свои функции, спасибо, хотя – Quirkles