我是Jasmine单元测试的新手,这是我第一次尝试使用控制器测试指令。我的指令和控制器的结构几乎没有什么不同,我在任何博客或stackoverflow问题中都没有看到。我在尝试访问_testSampleFunction()函数以测试我的测试用例时有些挣扎。这里的缺点是我无法更改指令的体系结构,而是要相应地编写测试用例。任何帮助将不胜感激!
下面是我的控制器的定义方式:
(function () {
'use strict';
angular.module('myApp',[])
.directive('myDirective', myDirective);
function myDirective()
{
var directive ={
template : '<div></div>',
controller : myController,
controllerAs : 'vm',
scope: {},
};
myController.$inject =['$scope'];
return directive;
function myController($scope)
{
var vm = this;
init();
function init()
{
vm.TestSampleFunction = _testSampleFunction;
}
function _testSampleFunction()
{
return 'my directive';
}
}
}})(window.angular);
这是the人(包括spec.js):Demo Plunker
预先感谢!
答案 0 :(得分:1)
指令测试使用真实的控制器,因此您无需在测试中进行任何控制器设置。
我已经通过视图的测试示例更新了您的Plunker,并且还介绍了如何掌握控制器。
方向性测试非常有用,因为您知道控制器和视图已正确绑在一起-我主要是(除了我不能做的奇怪情况之外),通过视图测试所有内容(例如,单击页面中的某些内容并检查是否该视图将进行相应的更新。)