我有我的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
触发到我的服务(getDataService
)中的设置器:setDataType: function (dataT) {
dataType = dataT;
},
我对如何测试这一点完全感到困惑。如何在仅调用服务中函数的控制器中测试该函数?我如何在不检查服务的情况下测试此值是否已更改?我会测试吸气剂和吸气剂吗?
最佳答案
因此,您将分别进行两个测试。控制器中的测试应仅测试其是否调用了正确的方法:
it('.setDataType should call getDataService.setDataType with the correct parameter', inject(function (getDataService) {
spyOn(getDataService, 'setDataType');
$scope.setDataType('myDataType');
expect(getDataService.setDataType).toHaveBeenCalledWith('myDataType');
}));
关于javascript - 如何在 Controller 中测试将值传递给服务 setter 的 setter 功能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35065527/