Express SailsJS如何设置Mocha测试框架?

Express SailsJS如何设置Mocha测试框架?,express,mocha.js,sails.js,Express,Mocha.js,Sails.js,我想在我的SailsJS项目中添加测试,Mocha非常常见,所以我决定使用它 我配置并注册了grunt mocha测试,以便在“默认”任务触发器(tasks/register/default.js)运行时运行我的测试,但它没有运行任何东西 如何正确配置摩卡并将其安装到SailsJS中,以便使用grunt自动运行? 是否可以手动运行测试? 以下是我所做的: 1)安装测试包 npm安装mocha--保存开发 npm安装grunt mocha测试--保存开发 npm安装sinon--保存开发 npm安

我想在我的SailsJS项目中添加测试,Mocha非常常见,所以我决定使用它

我配置并注册了grunt mocha测试,以便在“默认”任务触发器(tasks/register/default.js)运行时运行我的测试,但它没有运行任何东西

如何正确配置摩卡并将其安装到SailsJS中,以便使用grunt自动运行?

是否可以手动运行测试?

以下是我所做的:

1)安装测试包 npm安装mocha--保存开发 npm安装grunt mocha测试--保存开发 npm安装sinon--保存开发 npm安装断言--保存开发

3)添加了文件tasks/config/mocha test.js

module.exports = function(grunt) {

    grunt.config.set('mochaTest', {
      test: {
        options: {
          reporter: 'spec'
        },
        src: ['tests/**/*.spec.js']
      }
    }),

    grunt.loadNpmTasks('grunt-mocha-test');
};
**3) 在tasks/register/default.js中注册的任务**

module.exports = function (grunt) {
    grunt.registerTask('default', ['compileAssets', 'linkAssets',  'watch', 'mochaTest']);
};
2)在应用程序根目录中创建测试文件夹

测试/controller/session.spec.js

    var SessionController = require('../../api/controllers/SessionController'),
        sinon = require('sinon'),
        assert = require('assert');

        console.log('SessionController: ', SessionController);

    describe('The SessionController', function () {
        describe('When we load the signIn page', function () {
            it ('should render the view', function () {
                var view = sinon.spy();
                SessionController.index(null, {
                    view: view
                });
                assert.ok(view.called);
            });
        });
    });

我不知道设置Grunt任务来运行Mocha测试是最好的解决方案。每次你做
帆提升时,帆“管道”中的咕噜声任务都会运行;每次提升服务器时运行测试可能会变得非常烦人,因为您会向套件中添加更多的测试,因为在开发过程中,您往往会执行大量的
sails lift

您当然可以手动运行测试;您只需在全球范围内安装Mocha:

sudo npm install -g mocha
然后在应用程序的根目录中,只需键入
mocha
即可运行
/test
下的所有测试。您可以通过给命令一个子目录来指定要运行的测试子集,例如
mochatest/controller

就测试本身而言,可以按照您的方式对控制器进行单元测试,但这意味着您必须模拟请求和响应对象。更好的方法是在
函数之前提升
中的Sails实例,然后向控制器发出HTTP请求。在每次测试之前或每次测试之前,请参阅对的回答,以获取从内部测试提升帆的两个示例。然后,您可以使用Node
http
模块向控制器发出请求,或者让自己的生活更轻松,并使用该模块