1

現在、jQuery 1.6.1とjsTestDriverフレームワークを使用して、次のコードスニペットをテストしています。主な目的は、「#switcher」がフォーカスイベントでトリガーされた後、「#area」入力要素がフォーカスを取得したかどうかをテストすることです。テストに合格しませんでしたが、失敗する理由はわかりません。

奇妙なことに、このテスト関数内でFirefoxのfirebugを使用してブレークポイントを設定した場合、後で実行ボタンを押した後、テストは正常に合格します。

誰かが同じ問題に遭遇しましたか?それともjsTestDriverフレームワークのバグですか?

私の備品は次のとおりです。

<form id="test-form">
            <input style="display: none;" type="text" value="" name="area" id="area">
            <input type="text" value="" name="switcher" id="switcher">
</form>

これが私のjavascriptテストコードです

TestCase('test focus within a focus event', {
    setUp: function() {
        this.$form = $('#test-form');
    },

    'test focus switcher, area should be focused': function() {
        function focusHandler(){
            $('#area', this.$form).show();
            $('#area', this.$form).focus();
        }
        $('#switcher', this.$form).live('focus', focusHandler);
        $('#switcher', this.$form).focus();

        assertTrue($('#area', this.$form).is('focus'));
    },

});
4

1 に答える 1

0

セレクターが「フォーカス」ではなく「:フォーカス」であるという事実以外に、他に確固たる提案はありません。物事を頻繁に再発見するべきではありません。試す:

TestCase('test focus within a focus event', {
  setUp: function () {
    this.$form = $('#test-form');
  },

  'test focus switcher, area should be focused': function () {
    function focusHandler() {
      $('#area', this.$form).show().focus();
    }

    var $switcher = $('#switcher', this.$form);
    $switcher.live('focus', focusHandler);

    $switcher.focus();

    assertTrue($('#area', this.$form).is(':focus'));
  }
于 2011-07-02T04:41:36.683 に答える