风帆 + Angular + 茉莉花

Sails + Angular + Jasmine

我在后端使用 SailsJS,在前端使用 Angular。到目前为止,它们运行良好。 SailsJS 后端逻辑在 Mocha 中进行了测试。我正在尝试为前端 Angular 添加一些测试。

Angular 的测试文档对我来说很神秘。看了好久的文档,还是不知道从何入手。

1) 我应该将 Angular 的单元测试代码放在 SailsJS 项目中的什么位置?现在 Angular 代码位于 assets/js 下。我应该把测试放在同一个目录下吗,像下面这样?

assets/js/MyAngularCode.js
assets/js/MyAngularCode_test.js

MyAngularCode.js

(function(){
    var myApp = angular.module('myApp', []);
    myApp.controller('FirstController', [$scope, function($scope){
        //blah blah
    }]);
})();

我应该在 MyAngularCode_test.js 中写什么来测试 FirstController 中的任何逻辑?

2) 如何 运行 Jasmine 测试 SailsJS + Angular 项目中任何给定文件目录结构? 如何使 "Jasmine init" 和 "Jasmine" 在这样的项目中工作。我假设需要一个 Jasmine.json 文件。但它应该在哪里?

3) 比如我有一个文件,

FirstTest.js

'use strict';

describe("A suite", function() {

    beforeEach(angular.mock.module('myApp'));

    it("contains spec with an expectation", function() {
        expect(true).toBe(true);
    });
});

我应该把它放在哪里,我应该怎么做它才不会显示下面的错误

ReferenceError: angular is not defined

既然你想要任何意见...

您可以使用 yeoman 搭建脚手架;这将帮助您创建页面和目录结构。

  • 使用 generator-angular 因为您正在使用 angular
  • yo angular:controller foobar 将为您的控制器创建文件以及测试文件。
  • 它将创建一个 package.json 和一个开箱即用的测试命令 (grunt test)。

这里有教程:http://yeoman.io/codelab.html

只需克隆此 github 存储库,它是一个空白应用程序,前端使用 Angular https://github.com/sgress454/angular-on-sails