2016-12-07 25 views
9

我有一个FuncUnit测试案例,其中我打开使用如何在测试中抑制FuncUnit单元错误?

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

有一个在我们的页面中的已知问题,大约一个在20倍左右的网页不会为任何原因加载网页。我想在未加载时重试。但是在FuncUnit中,如果无法加载页面,则无法抑制错误。有没有办法在Funcunit中抑制错误信息?

+0

我很惊讶你可以打开远程URL。我只是尝试了'F.open('https://www.google.com')'并且得到一个错误。我不认为'F.open()'是针对远程URL的,因为你无法与DOM进行交互。你准备测试什么? –

+0

@Ryan它实际上不是远程网址。这是一个本地主机网址。我只是以example.com为例。 – Sathish

+0

啊,好的。看起来像你找到了解决方案,虽然哈克。你能否提供一组最少的文件来重现此问题?这听起来像一个需要修复的错误。 –

回答

0

难道这样的东西不适合你吗?

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 
    } 
    } 
}); 
+0

这不行。如果F.open未打开,则测试失败。 – Sathish

0
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 passes.However第二个测试点,我不能再在情况下,先做F.open一个不起作用,因为当页面没有加载时,无法抑制F.open错误。

所以我在制作实际的F.open之前总是做一个简单的ajax调用。这不是正确的做法,但它对我们很有用,因为我们实际上并不关心页面是否是我们测试中的第一次/第二次加载。