1
私はAngularjs + grunt + karma + jasmineを使っています。これは私が私のコントローラに関数を書いた方法です:カルマとジャスミンでanglejsの引数としてフォームを使ったテスト関数
Vm.find = function(form){
/* code lines */
};
そしてビュー側でng-clickで関数を呼び出しました。
<form name="form">
<input/>
<input/>
<input/>
<button ng-click(Vm.find(form))></button>
</form>
ここで、単体テストの引数としてフォームを使用して関数を呼び出す方法に驚いています。私はテスト仕様ファイルの下のコードを使用してテンプレートhtmlを取得しています。しかし、どのように機能を引き起こすのか分からない。
html = templateCacheMock.get('modules/reports/partials/renewals/generate-renewals.htm');
complied = angular.element(html);
element = compileMock(complied)(scope);
element.find('.find-btn').triggerHandler('click');
ご了承ください。私はユニットテストのために全く新しいです。
フォーム引数はどうですか? – winnyboy5
'ng-mode'を使って、各入力を' $ scope'要素に束縛することができます。これが完了すると、AngularはJavaScript変数とHTML要素の間に双方向のバインドを確立します。たとえば、入力フィールドの1つに 'ng-model =" first_name "'を追加するとします。 JavaScriptの中には '$ scope.first_name'という名前の変数があり、入力フィールドに入力されたものを含みます。同様に、JavaScript内の変数の値を変更すると、その変更は自動的にHTMLページに反映されます。 – FDavidov