5

QUnit と JQuery を使用しており、Web サイトのユーザー インターフェイスをテストしたいと考えています。私の webapp は iframe にあります。ナビゲーション リンクをクリックし、新しいページが読み込まれるまで待ってから、JQuery を介していくつかの項目を選択して、正しいページが読み込まれたことを確認したいと考えています。

これを達成する方法は?

setTimeout()、delay()、ajaxSetup()、setInterval() について読みましたが、これまでのところ成功していません。

コード スニペットを次に示します。

// Klick auf Unternehmen und vergleiche h1-Ueberschrift.
        test("Klick Unternehmen, checke Ueberschrift", function() {
            var mes = "test: Klick Unternehmen, checke Ueberschrift;";
            var exp = "Unternehmen";
            jQuery.ajaxSetup({ async: false }); //turn off async so tests will wait for ajax results
            jQuery('#testframe').attr('src', './../index/unternehmen/').delay(3000);
            var t = setTimeout('doNothing()', 2000);
            //alert('now');
            var act = jQuery('h1').eq(1);
            //var act = "Unternehmen";
            //console.log(mes);
            equal(act, exp, mes);
        });

更新: ajax でリソースを呼び出すことができました。とにかく、click() - wait() - compare() を呼び出す方法がまだわかりません。

// Klick auf Unternehmen und vergleiche h1-Ueberschrift, Ajax S. 250
        test("Klick Unternehmen, checke Ueberschrift", function() {
            jQuery.ajax({
                url: "./../index/unternehmen/",
                async: false,
                success: function(response){
                    if (response){
                        jQuery('#ajaxcontent').html(response);
                    }
                },
                context: document.body,
                type: "POST"
            });
            var mes = "test: Klick Unternehmen, checke Ueberschrift;";
            var exp = "Unternehmen";
            var act = jQuery('#ajaxcontent h1').eq(0).text();
            equal(act, exp, mes);
        });
4

1 に答える 1

2

試してみてください

$("#yourIframeID").load(function(){
    //do your testing stuff here..

})

には非同期テストの方法もありますがQUnit、それがあなたのケースに当てはまるかどうかはわかりません ( asyncTest( name, expected, test ))

于 2012-06-25T23:29:48.153 に答える