现在我有错误“;ReferenceError:项未定义“;不知道如何测试我的dataService
Now I have error "ReferenceError: items is not defined" and cannot ideas how I can test my dataService.
我需要帮助,关于为我的工厂添加茉莉花味道。我的代码是…
---dataService.js-
angular.module('angularAppApp')
.factory('dataService', function($resource){
return $resource(`http://...:3100/posts/:id`, null,
{
'update': { method:'PUT' }
});
})
---onePostCtrl.js---
angular.module('angularAppApp')
.controller('onePostCtrl', ['$scope', '$http', '$routeParams', 'dataService',
function ($scope, $http, $routeParams, dataService) {
dataService.get ({id: $routeParams.postId}).$promise.then(function(data){
$scope.postInfo = data;
});
}]);
--主容器
angular.module('angularAppApp').controller('postCtrl', ['$scope','$http', 'ngDialog', 'dataService','trimService', function ($scope, $http, ngDialog, dataService, trimService) {
//save data to remote server from loaded pop-up
$scope.savePost = function(){
$scope.addFormData.date = $scope.formated_date;
dataService.save($scope.addFormData, function() {
laodData();
});
ngDialog.closeAll();
};
//delete post from remote server
$scope.deletePost = function(article) {
dataService.delete({ id: article._id }, function() {
laodData();
});
};
//edit post from remote server
$scope.updatePost = function (article) {
dataService.update({ id: article._id},article).$promise.then(function() {
laodData();
});
ngDialog.closeAll();
}
}]);
---模拟数据-
angular.module('mock', []).value('items', [{ ... }]
---在index.html我已经加载了模拟脚本---
src="bower_components/angular-mocks/angular-mocks.js"
src="mosk_data/mocks.module.js"
--茉莉测试是。。。
describe("factory of dataService", function (){
var $httpBackend, $http, $q, factory;
beforeEach(module("angularAppApp"));
beforeEach(module('mock'));
beforeEach(function(){
inject(function($injector, _$httpBackend_,_$http_,_$q_){
$q = _$q_;
$http = _$http_;
$httpBackend = _$httpBackend_;
$httpBackend.when('GET', '/items').respond(items);
factory = $injector.get('dataService');
});
afterEach(function () {
$httpBackend.verifyNoOutstandingExpectation();
$httpBackend.verifyNoOutstandingRequest();
});
it("Data service", function(){
});
});
现在,我有一个错误"ReferenceError:items is not defined",并且不知道如何测试我的dataService。
您忘记注入值并将其分配给测试中的变量。试试这个:
var $httpBackend, $http, $q, factory, items; //declare variable items here (or you can do it inside beforeEach)
beforeEach(module("angularAppApp"));
beforeEach(module('mock'));
beforeEach(function(){
inject(function($injector, _$httpBackend_,_$http_,_$q_, _items_){
$q = _$q_;
$http = _$http_;
//inject the value and assign to your variable
items = _items_
$httpBackend = _$httpBackend_;
$httpBackend.when('GET', '/items').respond(items);
factory = $injector.get('dataService');
});
您得到的Reference error
是因为没有名为items
的变量。您定义了一个名为items
的角度值,但它与变量不同——将其视为"位于角度内脏内的某个地方",要使用它,必须注入它,然后用作正常变量。
相关文章:
- 模糊事件的Javascript测试
- 我的单元测试选项是什么
- 测试索引值是否等于某个数字的倍数
- 在localhost Dev Box上测试JSONP请求的最佳方式
- 测试数组中每个项的内容
- 测试Angular Service解决错误回调中的promise
- 使用Jest测试React Native应用程序
- 为函数代码编写测试
- Javascript Mocha测试-测试函数表达式中的函数表达式
- 使用超级测试测试 koa 路由时,内容类型标头始终相同
- 使用磁带/ES6 单元测试测试 AMD 模块
- 用茉莉花测试测试ng变化
- 单元测试 - 测试文件计数和文件夹大小
- 节点.js单元测试:测试fs模块抛出错误时的行为
- 如何使用因果报应运行基本测试(测试)
- 使用Jasmine进行单元测试:测试没有看到beforeEach()中的代码's spyOn()
- 用Jasmine单元测试测试Angular模块
- 单元测试:测试内部承诺
- 使用Visual Studio和Team City,用单元AND集成测试测试javascript的正确方法是什么
- 超级测试测试快速中间件