私は以下のHTMLを持っており、スイッチケースで動的に読み込まれます。このために個別の指令を作成する必要はなかったため、このようにすることにしました。私がやりたいどのような次のユニットテスト角度単位テストでng-patternを検証する
describe('form', function() {
rootScope.selectedCriterion = { regexPattern: '[0-5]+' };
it('allows numbers to be filled in the input field', function() {
var compiledElement = $compile(html)(rootScope);
rootScope.$apply();
var form = rootScope.form;
var inputElement = compiledElement.find('input[name="number"]');
inputElement.val(4).triggerHandler('input');
rootScope.$digest();
expect(inputElement.val()).toEqual('4');
expect(form.$valid).toEqual(true);
inputElement.val(8).triggerHandler('input');
rootScope.$digest();
expect(inputElement.val()).toEqual('8');
expect(form.$valid).toEqual(false);
});
});
と
<li ng-form="form">
<input name="number" type="number" ng-model="selectedCriterion.valueFrom" ng-pattern="selectedCriterion.regexPattern">
</li>
はE2Eテストレベルでは、ユニットテストでNGパターンをテストしていないです。 テストが最後の期待
expect(form.$valid).toEqual(false);
で失敗私が私のHTMLをコンパイルし、手動でサイクルを消化$を呼び出すにもかかわらず、フォームがこのレベルに自分自身を検証することができないようです。
私は間違っていますか?このレベルのフォームを検証できますか?
編集:私は集中的にStackOverflowとGoogleを検索して回答を得ました。
(例えば、その期待に失敗した、など、ディレクティブ内でこのhtmlです) – vbuhlev