2015-11-09 3 views
1

Я пытаюсь создать тест Jasmine для тестирования веб-приложения.Угловое тестирование с помощью Jasmine

как вы тестируете содержимое вставки со страницы? Я создал пример: Если я тестирую только контроллер, с издеваемыми данными, функция sum, представленная в примере, работает, но при тестировании со страницей возникает ошибка, потому что числа преобразуются в строку, поэтому, что правильный подход к такого рода испытаниям?

Вот пример я создал, чтобы понять проблему я столкнулся:

angular.module('MyApp', []) 
 
.controller('provaController', function ($scope) { 
 

 
    $scope.firstNumber = 0; 
 
    $scope.secondNumber= 0; 
 
    $scope.result = 0; 
 

 

 
    $scope.sum = function() { 
 
    $scope.result = $scope.firstNumber + $scope.secondNumber; 
 
    }; 
 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="MyApp"> 
 
    <div ng-controller="provaController"> 
 
     <input type="text" ng-model="firstNumber" /> 
 
     <input type="text" ng-model="secondNumber" /> 
 

 
      <input type="button" ng-click="sum()" value="SUM"/> 
 
    <br/> 
 
     <input type="text" ng-model="result" /> 
 
     
 
     <p>First: -{{firstNumber}}- </p> 
 
     <p>Sec: -{{secondNumber}}- </p> 
 
     <p>Res: -{{result}}- </p> 
 
    </div> 
 
</div>

Пера примера здесь: http://codepen.io/anon/pen/wKYOxw

ответ

1

в input s настраивает ваш model для строкового представления чисел, а не самих чисел.

Если вы установили атрибут type ваших входов на number вместо text, вы получите ожидаемый результат.

Я updated your codepen с изменением

+0

Спасибо, но в то время как это верно для достижения ожидаемого результата из примера кода, речь идет не о самом примере, но о понимании того, как сделать тест поймать такую ​​ошибку, а не только исправить код – Stormsson

+1

Невозможно проверить, что с жасмином вам нужно будет использовать [транспортир] (https://angular.github.io/protractor/#/) для проверки взаимодействия html , –

Смежные вопросы