0

画像をクリックすると、suggestbox の値を変更する JavaScript メソッドを作成しました。

function startDestinationF(a) {
var startDestination = document.getElementById('startDestination');
startDestination.selectedIndex = (a);}

このメソッドが実際に機能するかどうかを確認するためにジャスミンのテストケースを作成する必要がありますが、実際にはわかりません。

私はもう試した:

describe("Change onclick the value of the drop down menu", function() {

var startDestination;

beforeEach(function() {
    startDestination = document.getElementById('startDestination'); 
  });

it("should change the value", function() {
    expect(startDestinationF(3)).toBe(startDestination.selectedIndex==3);
});});

しかし、「nullのプロパティ 'selectedIndex'を読み取れません」と書かれています。私はその分野の初心者で、本当に助けが必要かもしれません...

ありがとう

4

4 に答える 4

1

DOMにはstartDestinationIDの要素が必要です。

これを達成する2つの方法:

  • 要素をSpecRunner.htmlのbody要素にハードコーディングします
  • JavaScriptを使用して要素を作成し、そのテストを実行する前にDOMに追加します。
于 2012-12-17T09:45:37.677 に答える
1

古い質問ですが、誰かがそれを見つけた場合に備えて

it("should work", myTestFunction.bind(this, 'param1','param4'));
it("should work", myTestFunction.bind(this, 'param2','param3'));

function myTestFunction(param1, expected){
   expect(param1).toBe(expected);
}

bind を使用して、必要なパラメーターを使用して関数のコピーを作成します

于 2016-10-03T15:04:14.427 に答える
0

Jasmine と同様に、DOM で ID を持つ要素を作成する必要があることが重要です。これを行うには多くの方法があり、私が行う方法はjasmine-fixtureを使用することです

affix('#startDestination')  --> This will create this in DOM <div id="startDestination">

特定のタイプの入力が必要な場合は、それも可能です。

于 2012-12-27T19:21:10.913 に答える
0

これはあなたがそれを行うことができる1つの方法であり、これは通常私がこれを行う方法です. 私はこれにjQueryを自由に使用しました:)

動作中の plunkr は次のとおりです: http://plnkr.co/edit/93dyzvxa82sFWWFZ6NTi?p=preview

describe('test suite', function(){
   // this here represents your global function
   // I've added this here for the purpose of this demo
   function setValue(a) {
       $('#name').val(a);
    }       

   beforeEach(function(){
      this.element = $('<input id="name" type="text" />');
      this.element.appendTo('body');
   });

   // clean up
   afterEach(function(){
      this.element.remove(); 
   });

   it('should change the value', function(){
      //when
      setValue('Alex Baur');

     // then
     expect(this.element.val()).to.Equal('Alex Baur');
   });
});
于 2015-01-31T21:13:47.223 に答える