大佬教程收集整理的这篇文章主要介绍了单元测试 – AngularJS – 带注射的基本测试,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个testacular.conf文件,其中包含所有必需的内容:
files = [ '../lib/jquery.js','../lib/angular.js','./lib/jasmine.js','./lib/angular-mocks.js',JASmine_ADAPTER,'./tests.js' //compiled by browserify ];
@H_704_12@mainCtrl = ($scope,$rootScopE) -> $scope.Hello = 'initial' module.exports = (angularModulE) -> angularModule.controller 'MainCtrl',['$scope','$rootScope',MainCtrl] return MainCtrl
我有自己的测试:(_ MainCtrlTest.coffee,与MainCtrl.coffee在同一目录中)
testModule = angular.module 'MainCtrlTest',[] MainCtrl = require('./MainCtrl')(testModulE) describe 'MainCtrlTest',-> scope = null elm = null ctrl = null beforeEach inject ($rootScope,$compile,$controller) -> scope = $rootScope.$new() ctrl = $controller MainCtrl,$scope: scope elm = $compile('<input ng-model="Hello"/>')(scopE) describe 'value $scope.Hello',-> it 'should initially equal input value',-> expect(elm.val()).toBe scope.Hello it 'should change when input value changes',-> scope.$apply -> elm.val('changedValue') expect(scope.Hello).toBe elm.val()
测试立即失败,输入的elm.val()返回空白,scope.Hello返回预期值(‘initial’,在MainCtrl.coffee中设置)
我在这做错了什么?
it 'should initially equal input value',-> scope.$apply() expect(elm.val()).toBe scope.Hello
您的测试试图测试Angular的绑定和ng-model是否有效.您应该相信框架并测试代码.
>控制器(设置初始scope.Hello值)
> html模板(以及那里的所有绑定,指令)
您可以非常轻松地测试第一个,甚至无需触摸任何DOm.这就是AngularJS的美妙之处 – 强烈的视图/逻辑分离.
在这个控制器中,几乎没有什么可以测试,但初始值:
it 'should init Hello',-> expect(scope.Hello).toBe 'initial'
要测试第二个(模板绑定),您需要进行e2e测试.你基本上想要测试,模板是否包含绑定等中的任何拼写错误…所以你想测试真正的模板.如果你在测试期间内联了一个不同的html,那么你只测试AngularJs.
以上是大佬教程为你收集整理的单元测试 – AngularJS – 带注射的基本测试全部内容,希望文章能够帮你解决单元测试 – AngularJS – 带注射的基本测试所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。