小编evi*_*ick的帖子

如何使用karma/jasmine模拟angularAMD中的服务?

我有一个使用AngularAMD/RequireJS/Karma/Jasmine的项目,我的基本配置全部工作,大多数单元测试运行并成功通过.

我无法使用angular.mock.module或angularAMD.value()正确注入模拟服务.

我有:

// service definition in services/MyService.js
define(['app'], 
       function(app) {
           app.factory('myService', [ '$document', function($document) {
               function add(html) {
                   $document.find('body').append(html);
               }
               return { add: add }; 
           }]);
       }
);


// test
define(['angularAMD', 'angular-mocks', 'app', 'services/MyService'],
       function(aamd, mocks, app) {
           describe('MyService', function() {
               var myBodyMock = {
                   append: function() {}
               };
               var myDocumentMock = {
                   find: function(sel) {
                       // this never gets called 
                       console.log('selector: ' + sel);
                       return myBodyMock; 
                   }
               }; 
               var svc;
               beforeEach(function() {
                   // try standard way to mock …
Run Code Online (Sandbox Code Playgroud)

angularjs karma-jasmine angular-amd

8
推荐指数
1
解决办法
447
查看次数

标签 统计

angular-amd ×1

angularjs ×1

karma-jasmine ×1