了解jQuery和QUnit的单元测试

时间:2018-07-16 17:48:54

标签: javascript jquery unit-testing qunit

我一直在尝试学习单元测试的工作原理和设计目的,最重要的是,我真的试图理解做什么,因为有人告诉我,这不是单元测试的写法。 ,编写单元测试是什么。因此,我开始了这个针对jQuery的单元测试QUnit框架,以尝试在临时级别上进行单元测试。我已经读了一些书,但是我想深入研究最难的部分,即理解要写的东西。我从这个开始。我知道在单元测试中需要通过4个断言。但是有一些事情我很难找到答案。

  1. .pop()()的作用是什么?特别是它有两个括号,我在Google上找不到双括号的答案。

  2. 第一个断言简单捕获一个模拟变量,以便可以使用它来测试断言吗?

  3. 最后一个声明是做什么的?我认为我理解第二和第三条断言是为了测试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()();
    } );
    

0 个答案:

没有答案