角度とジャスミンには新しい。私はsave()
メソッドを持っています。これは私がテストしている私のコントローラーで単体テストにしたいのです。私が以前にselect()
を行ったときに定義されたいくつかの変数を設定します(これは、基本的に、UIが行をクリックしたときに呼び出されるメソッドです)。ここでは抜粋です:ジャスミンテスト異なる方法で記述された変数を設定するメソッド
function select(row){
vm.selected.row = row;
vm.someValue = false;
}
そして今、私は機能save()
function save(){
if(vm.selected.row == 1)
{
//doSomething
}
vm.someSaveValue = vm.someValue; // assigning vm.someSaveValue to the value I set to false in select method above
}
を持っている。しかし、私は保存()メソッドのユニットテストを書く場合、私は私がで作成した変数にアクセスすることができません。 select()
メソッド。任意の手がかりをどのように達成するために?ここで は私のサンプルテストスニペット明らか
describe('Test someValue setting', function(){
it('test someValues', function (done) {
vm.save().then(function() {
spyOn(vm.select) // maybe this way, but how to access the variables this sets to ??????
expect(vm.someValue).toEqual('true');
});
scope.$apply();
done();
});
});
である私は私のテストを実行すると、それは私のメインコントローラメソッドsave()
に達したが、It vm.selected.row is undefined
と失敗したと言ってエラー。何か案が ?
ありがとうございました。
これは 'vm.select(1)'が実行されているので動作しませんが、save()の 'it(....)でテストしているときには、変数。 – noobcoder
グローバル変数の場合はアクセス可能でなければなりません。それ以外の場合は、そのメソッドのスパイを作成し、spyOn(test、 "save");結果を返します。 – Yogesh
あなたは詳しく教えてもらえますか?それともスニペットを提供しますか? – noobcoder