使用Jasmine进行角度测试

时间:2015-11-09 16:29:13

标签: angularjs testing jasmine tdd

我正在尝试使用Jasmine创建一些测试来测试Web应用程序。

如何测试页面中插入的内容? 我创建了一个例子: 如果我单独测试控制器,使用模拟数据,示例中提供的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 个答案:

答案 0 :(得分:1)

input将您的模型值设置为数字的字符串表示形式,而不是数字本身。

如果您将输入的type属性设置为number而不是text,则会得到您期望的结果。

我已经updated your codepen进行了更改