gpt4 book ai didi

node.js - Sails js::测试传递给 View 的变量

转载 作者:太空宇宙 更新时间:2023-11-03 23:06:43 24 4
gpt4 key购买 nike

Controller

module.exports = {

index: function (req, res) {
res.view({message: 'hello'});
}
}

如何测试变量message设置是否正确?

var request = require('supertest');

describe('HomeController', function() {
describe('index', function() {
it('should return success', function (done) {
request(sails.hooks.http.app)
.get('/')
.expect(200).end(function (err, res) {
if (err) throw err;
res.body.should.have.property('message');
done();
});
});
});
});

res.body 返回 {}

最佳答案

您正在测试响应正文的属性message ,但这不是 View 局部变量的工作方式:它们作为 View 引擎可以替换的变量传递给 View 。如果您的 View 中不存在该变量,则不会发生替换。此外,使用get supertest 中的方法不会返回 res.body默认情况下;您需要检查res.text反而。所以:

  1. 确保您的 home/index.ejs View 实际上包含 <%= message %>某处。
  2. 将您的测试更改为 assert(res.text.match(/hello/)) 之类的内容检查是否存在应替换 <%= message %> 的“hello”字符串在渲染 View 中。

关于node.js - Sails js::测试传递给 View 的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32855998/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com