Как подавить ошибки модуля FuncUnit в тестах?

У меня есть тестовый пример FuncUnit, в котором я открываю веб-страницу, используя

F.open("http://www.example.com");

На нашей странице есть известная проблема, что примерно одна из примерно 20 раз веб-страница не загружается по какой-либо причине. Я хочу повторить, когда он не загружается. Но в FuncUnit нет способа подавить ошибку, если не удается загрузить страницу. Есть ли способ подавить сообщение об ошибке в Funcunit?

2 ответа

Может ли что-то подобное для вас работать?

module("test", {
  setup: function() {
    let startMeUp = () => F.open('http://www.example.com'); // unfortunately doesn't return a usable value
    let checkCondition = () => {
      // grab F(F.window), and check for a known element in the page
      return elementFound;
    };
    while(!checkCondition()) {
      // element wasn't found, so let's try it again
      startMeUp();
      // maybe set a wait here
    }
  }
});
var url = "http://www.example.com"
F.get(url, function(data){
    console.log("Made an ajax call to make sure that F.open is always second call");
})
// Wait for few seconds before making the actual F.open
F.wait(5000,function(){
   F.open(url);
})

Всякий раз, когда F.open терпит неудачу (то есть в течение одного из 20 раз), я замечаю, что вторая контрольная точка, которая использует F.open, проходит. Однако я не могу снова выполнить F.open в случае, если первая не работает, поскольку нет способа подавить ошибку F.open, когда страница не загружается.

Так что я всегда делаю простой вызов ajax, прежде чем сделать фактический F.open. Это не правильный способ сделать это, но он работает для нас, так как нам на самом деле все равно, будет ли страница загружаться в первый / второй раз в наших тестах.

Другие вопросы по тегам