我正在尝试使用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
答案 0 :(得分:1)
input
将您的模型值设置为数字的字符串表示形式,而不是数字本身。
如果您将输入的type
属性设置为number
而不是text
,则会得到您期望的结果。
我已经updated your codepen进行了更改