QUnit은 필기-2 동기화 및 비동기식 처리 방식을 사용합니다.

1479 단어 비동기식 처리
동기화:
때때로 우리가 방법이 실행되는 횟수를 판단하려면 간접적으로expect(n);//expect의 매개 변수를test의 두 번째 매개 변수로 간소화할 수 있습니다.
QUnit.test("expect test", function(assert) {

    expect(2);  //assert run two times;

    function calc(x, operation) {

        return operation(x);

    }

    var result = calc(2, function(x) {

        assert.ok(true,"calc() calls operation function"); //use ok to check;

        return x*x;

    });

    assert.equal(result,4,"2 square equal 4");

});


같은 이치로 방법 집행 횟수 외에 사건 발생 횟수도 판단할 수 있다.
QUnit.test("a test", function(assert) {

    expect(1); //when click the body will fail;

    var $body = $("body");

    $body.on("click",function() {

        assert.ok(true,"body was clicked!");

    });

    $body.trigger("click");

});


비동기식:
비동기적으로test 대신 asyncTest를 사용해야 합니다.동시에 start 방법으로 표시하고 비동기적인 방법이 되돌아온 후에 계속 실행되는 곳;
같은 이치로 expect를 사용하여 비동기적인 방법이나 이벤트의 실행 여부를 판단한다.
   QUnit.asyncTest("asyncChronous test;one second later!", function(assert) {

    expect(1);

    setTimeout(function() {

        assert.ok(true,"Passed and ready to resume!");

        QUnit.start(); //set start to tell QUnit to continue when callback end;

    },1000);

   })


주의: 만약 테스트가 동기화될 때 다른 방법을 통해 사건을 촉진하는 것을 테스트해야 하는 경우;이때 비동기와 함께 테스트를 하면 비동기화 방법이 돌아오는 시간을 기다리는 동안 동기화 방법 테스트에 부작용을 가져와 동기화 실행 여부를 판단할 수 없습니다.

좋은 웹페이지 즐겨찾기