How to Unit Test with Qunit a Knockout View Model that uses throttle on observables

不问归期 提交于 2019-11-29 11:29:32

If you only what to test that the Status toggles between true and false I would just subscribe on the Status change and check in the change callback that the first time I get the value true and the second time the value false.

Writing your test this way you would need to have one start/stop pair, something like this:

asyncTest("computed with ajax", function () {
    expect(2); // expecting two asserts, so the Status only changes twice
    var sut = new VM();
    // multiple calls to A to test the throttle behavior
    sut.A('something');
    sut.A('something2');
    sut.A('something3');
    stop();
    var callCount = 0;
    var expectedValues = [true, false];
    sut.Status.subscribe(function (value) {
        start();
        equal(sut.Status(), expectedValues[callCount]);
        callCount++;
    });
});

Demo JSFiddle.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!