我有我的HTML,其中包含一个模态窗口,其中包含ng-repeat
<strong>Data Type:</strong><select ng-options="dataTypes for dataTypes in dataTypeItems"
ng-model="dataTypes"
ng-change="setDataType(dataTypes)">
<option value="">Select Option</option>
</select>
我的HTML与我的mainCtrl
进行通信,特别是setDataType(dataType)
方法:
$scope.setDataType = function (dataT) {
getDataService.setDataType(dataT);
};
反过来将字符串值dataType
触发到我的服务中的setter(getDataService
):
setDataType: function (dataT) {
dataType = dataT;
},
我对如何测试这一点感到困惑。如何在我的控制器中测试功能,只需在我的服务中调用一个功能?如何在不检查我的服务的情况下测试它以查看值是否已更改? DO 我测试了getter和setter?
答案 0 :(得分:3)
所以你将分别进行两项测试。控制器中的测试应该测试它正在调用正确的方法:
it('.setDataType should call getDataService.setDataType with the correct parameter', inject(function (getDataService) {
spyOn(getDataService, 'setDataType');
$scope.setDataType('myDataType');
expect(getDataService.setDataType).toHaveBeenCalledWith('myDataType');
}));