【问题标题】:Trying to get angular mock to work with teaspoon-jasmine试图让角度模拟与茶匙茉莉花一起工作
【发布时间】:2018-08-27 13:21:16
【问题描述】:

所以我正在使用 ruby​​ on rails,并且我第一次将它与 AngularJS 1 一起使用,因此我第一次在 rails 内设置了 angularjs 的单元测试。我可以用 rspec 测试 rails 没问题,但我一直在努力测试 angularjs,目前我正在使用 teaspoon-jasmine 和 angular-mocks 来测试一个简单的角度控制器,但我遇到了几个问题。下面的第一个文件是我的测试文件,我目前使用 angular.mock.module/inject 得到它,我得到的错误是“无法实例化模块 angularrApp 由于...”它基本上是说我没有创建或在任何地方加载 angularApp,我虽然模拟应该创建一个测试模块?如果我将模块添加到“angular.module("name", [])”,就像我通常会创建一个 Angular 应用程序一样,我会遇到更多问题,例如尚未创建 mainController。我只是总体上无法正常工作,有什么建议吗?在继续进行实际测试之前,我试图让简单的第一个期望工作。我需要在 spec_helper.js 文件中的 angular 和 angular-mocks,下面的所有文件。在我的 spec_helper.js 中要求创建角度应用程序的文件是否有帮助?我已经尝试过但无法让它工作,因为一个在 spec 目录中,而我的 Angular 应用程序在 app/assets 中。另外,如果有帮助,这里是我基于此代码的教程的链接 http://angular-rails.com/find_and_browse.html

mainController_spec.js(测试文件)

'use strict';


describe("mainController", function() {

	var scope,
			ctrl,
			location,
			resource;

	var setupController = function() {
		angular.mock.inject( function($rootScope, $resource, $controller) {
			scope = $rootScope.$new();
      resource = $resource;
      ctrl = $controller('mainController', {$scope: scope, $resource: resource });
    })
	}


	beforeEach(function(){
		angular.mock.module("angularApp");
		setupController();
	})

	it('should work', function(){
		expect(true).toBe(true);
		// expect(scope.games).toBe([])
	})

});

mainController.js

'use strict';


myApp.controller('mainController', [ 'mainFactory', '$scope', '$resource', (factory, scope, resource) => {

	scope.games = [];

	
	factory.populateTable((data) => {
		scope.games = data;
	})

}]);

angular-app.js

'use strict';


const myApp = angular.module('angularApp', ['ngRoute', 'ngResource']);
// routes in another file

【问题讨论】:

    标签: ruby-on-rails angularjs jasmine angular-mock teaspoon


    【解决方案1】:

    对于那些感兴趣的人,我遇到的问题是 teaspoon-jasmine、phantomjs 或两者都无法识别 javascript es6 语法,如果文件中有任何通常需要的 es6,则整个文件和它的内容被忽略,没有任何错误消息。一旦我将我的 angularApp 和控制器代码恢复为 ES5,我的问题就解决了。

    【讨论】:

      猜你喜欢
      • 2016-11-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-02
      • 1970-01-01
      • 2022-07-22
      • 1970-01-01
      • 2020-08-19
      • 1970-01-01
      相关资源
      最近更新 更多