小编gra*_*les的帖子

SailsJS:如何正确地对测试控制器进行单元化?

一直在使用Sails.js,并且无法为控制器提供Jasmine单元测试.如果这是显而易见的事情,请原谅我的无知,因为我在过去3-4个月里只深入研究JavaScript开发.

在过去的框架(特别是ASP .Net MVC)中,我们有了库来模拟控制器可能具有的任何依赖关系,比如外部服务(通过依赖注入).我有点想用Sails.js达到相同级别的单元可测试性,这样我们就可以实现正确的"单元"测试.具体来说,对于我的情况,我有一个控制器动作,依赖于服务对象 - 我只是想模拟该服务的响应.

但是,我有一段时间让这个Jasmine单元测试运行(使用jasmine-node插件).我的代码在下面是控制器及其单元测试.我现在得到的是:

  1. 应用程序对象似乎并不在afterEach解决()
  2. 间谍和测试级别变量的断言都失败了.

在我的单元测试中我是否明显错过了什么?代码如下.感谢您的任何意见!

UserController.js

var Battlefield4Service = require('../services/battlefield4Service');
module.exports = {
    /**
     * /user/bf4stats
     */
    bf4Stats: function (req, res) {
        var userName = req.param('userName');
        var platform = req.param('platform');
        var service = new Battlefield4Service();
        service.getPlayerInfo(userName, platform,
            function (data) {
                // Success callback
                res.json(data);
            });
    }
};
Run Code Online (Sandbox Code Playgroud)

UserController.spec.js

var Sails = require('sails');
var userController = require('./UserController');
var FPSStatsDTO = require('../dto/fpsStatsDTO');

describe('UserController', function() {

    // create a variable to hold the instantiated sails server …
Run Code Online (Sandbox Code Playgroud)

unit-testing sails.js

10
推荐指数
1
解决办法
5500
查看次数

标签 统计

sails.js ×1

unit-testing ×1