QUnit测试间歇性失败
QUnit tests failing intermittently
下面是我的javascript文件,它显示了两个数字的和。
var getSum = function (arg1, arg2) {
var intArg1 = parseInt(arg1);
var intArg2 = parseInt(arg2);
return intArg1 + intArg2;
};
var getSumText = function (arg1, arg2) {
var sum = getSum(arg1, arg2);
return 'The sum of ' + arg1 + ' and ' + arg2 + ' is ' + sum + '.';
};
$(document).ready(function () {
$("#button1").click(function (e) {
console.log('button clicked');
var sumText = getSumText($("#arg1").val(), $("#arg2").val());
$("#output1").text(sumText);
e.stopPropagation();
});
});
这是我的QUnit.html文件。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>Test Suite</title>
<link href="Content/qunit-1.12.0.css" rel="stylesheet" />
<script src="Scripts/jquery-2.0.0.min.js"></script>
<script src="Scripts/qunit-1.12.0.js"></script>
<script src="Scripts/main.js" data-cover></script>
<script src="Scripts/mainTests.js"></script>
<script src="Scripts/blanket.min.js"></script>
</head>
<body>
<h1 id="qunit-header">Test Suite</h1>
<h2 id="qunit-banner"></h2>
<div id="qunit-testrunner-toolbar"></div>
<h2 id="qunit-userAgent"></h2>
<ol id="qunit-tests"></ol>
<div id="qunit-fixture">
<input type="text" id="arg1" />
<input type="text" id="arg2" /> <br />
<div id="output1"> </div>
<input type="button" id="button1" value="Show sum" />
</div>
<script type="text/javascript">function blanket_toggleSource(e) {
var t = document.getElementById(e);
t.style.display === "block" ? t.style.display = "none" : t.style.display = "block";
}</script>
</body>
</html>
这是我的js测试文件。
module('DOM');
test('should add correctly', 1, function() {
$('#arg1').val('2');
$('#arg2').val('5');
console.log($('#arg1').val());
console.log($('#arg2').val());
$('#button1').trigger('click');
var output = $('#output1').text();
equal(output, 'The sum of 2 and 5 is 7.', 'sum text is correct');
});
module('Sum');
test('should add correctly', 1, function() {
var sum = getSum('2', '1');
deepEqual(sum, 3, 'sum is correct');
});
如果我将"Sum"模块移到"DOM"模块之上,则DOM模块中的测试会间歇性失败。我错过了什么?
谢谢,Arun
您需要将可以测试的库代码与初始化代码分开,在这种情况下,您实际上不需要测试这些代码。将单击处理程序中的代码移动到另一个命名函数中,并从单独的脚本标记或文件中调用该函数。这样,您就可以从测试中测试所有三个函数。目前,您最终会在某个时间点执行文档就绪的代码,而测试则在另一个时间点运行。这导致了你所看到的看似随机的行为。
相关文章:
- 为什么不'当单元测试出现解析错误时,我的因果报应测试会失败
- Jasmine单元测试在监视服务方法时失败
- ChaiJS:无法导致测试失败
- 当我的单元测试失败时,回调被调用了两次
- 预期[false]为false量角器e2e测试失败
- 为什么在我的单元测试中instanceOf的测试失败
- yeoman generator聚合物的web组件测试失败
- 当Firefox尝试登录时,Selenium测试失败
- 将范围添加到角度种子默认视图控制器时,测试套件现在失败
- Javascript由于测试中的双反转逗号而失败
- 测试Ember.JS应用程序失败,返回ReferenceError:未定义Ember
- 量角器中的AngularJS E2E测试失败
- 用摩卡测试失败的承诺'内置的promise支持
- 这个单元测试失败的原因是什么
- 当分离到不同的文件中时,测试失败
- 量角器(用于测试角咆哮)通过/失败不一致
- 为什么这个茉莉花节点测试没有失败
- 茉莉节点未显示失败测试
- 如果服务器给出响应,如何失败测试
- Jasmine Spec Runner:失败测试的堆栈跟踪