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