我一直在尝试学习单元测试的工作原理和设计目的,最重要的是,我真的试图理解做什么,因为有人告诉我,这不是单元测试的写法。 ,编写单元测试是什么。因此,我开始了这个针对jQuery的单元测试QUnit框架,以尝试在临时级别上进行单元测试。我已经读了一些书,但是我想深入研究最难的部分,即理解要写的东西。我从这个开始。我知道在单元测试中需要通过4个断言。但是有一些事情我很难找到答案。
.pop()()
的作用是什么?特别是它有两个括号,我在Google上找不到双括号的答案。
第一个断言简单捕获一个模拟变量,以便可以使用它来测试断言吗?
最后一个声明是做什么的?我认为我理解第二和第三条断言是为了测试GET和POST是否成功,而不是第四条断言。
if ( jQuery.ajax ) {
QUnit.test( "ajax", function( assert ) {
assert.expect( 4 );
var done = jQuery.map( new Array( 3 ), function() { return assert.async(); } );
jQuery.ajax( {
type: "GET",
url: url( "mock.php?action=name&name=foo" ),
success: function( msg ) {
assert.strictEqual( msg, "bar", "Check for GET" );
done.pop()();
}
} );
jQuery.ajax( {
type: "POST",
url: url( "mock.php?action=name" ),
data: "name=peter",
success: function( msg ) {
assert.strictEqual( msg, "pan", "Check for POST" );
done.pop()();
}
} );
jQuery( "#first" ).load( url( "name.html" ), function() {
assert.ok( /^ERROR/.test( jQuery( "#first" ).text() ),
"Check if content was injected into the DOM" );
done.pop()();
} );