Node express app - 构建单元/集成测试

时间:2014-01-14 19:57:33

标签: node.js express tdd mocha

我正在尝试为我的nodejs / express应用程序设置我的测试套件。

我有一个类似于this示例的结构,其中我有一个app文件夹,其中包含模型,视图,控制器文件夹。

我的测试目录目前已拆分为

  • 单元
  • 集成

内部单位,我模仿应用程序的文件夹结构。 我有我的模式等单元测试...保存到测试mongodb实例

我的问题是,我应该对我的控制器进行单元测试,还是应该保存它以进行集成测试?

我的'控制器'看起来像:

控制器/ account.js

exports.login = function(req, res) {
     res.render('account/login', {
          title: 'Log In'
     });
};

exports.login_post = function(req, res, next) {
     passport.authenticate('local', function(err, user, info) {
          if (err) {
               return next(err);
          }
          if (!user) {
               return res.redirect('/account/login');
          }
          req.logIn(user, function(err) {
               if (err) {                   
                    return next(err);
               }
               return res.redirect('/');
          });
     })(req, res, next);
};

通过在整个堆栈中使用supertest,或者通过“unit”测试login_post来测试它会更好吗?

1 个答案:

答案 0 :(得分:0)

我会保留这个用于集成测试。我还会使用PhantomDalekjs等工具。我的经验告诉我,测试实际渲染的html更好,但是遵循特定的用户交互流程。这种方法当然存在问题。在我的情况下,我不得不经常更改标记。这当然会一直打破测试。