Node.js 使用局部变量进行测试快速渲染

Node.js 使用局部变量进行测试快速渲染,node.js,express,ejs,chai,chai-http,Node.js,Express,Ejs,Chai,Chai Http,以下是我的示例代码: 文件:index.js var express = required('express'); var app = express(); app.get("/", function(req, res){ ... ... res.render("/index", { list: data }); }); 文件:test.js var chai = require('chai'); var chaiHttp = require(

以下是我的示例代码:

文件:index.js

var express = required('express');
var app = express();

app.get("/", function(req, res){
    ...
    ...
    res.render("/index", {
        list: data
    });
});
文件:test.js

var chai = require('chai');
var chaiHttp = require('chai-http');
var server = require('../index');
var should = chai.should();
chai.use(chaiHttp);

describe('Homepage', function(done){
    it('should render index view', function(done){
        chai.request(server.app)
        .get("/")
        .end(function(err, res){
            console.log(res.body);
        });
    });
});
console.log(res.body)
将输出显示为
{}
。如何获取要在输出中显示的本地
列表
变量?我想测试这个本地
列表
变量在我的test.js文件中是否有任何数据。

选项1。您应该使用将
列表
数据发送到测试用例

例如

index.js

var express=require('express');
var-app=express();
app.get('/',函数(req,res){
常量数据=['a','b'];
res.json({list:data});
});
module.exports={app};
index.test.js

var chai=require('chai');
var chaiHttp=require('chai-http');
var server=require('./索引');
var-should=chai.should();
柴胡;柴胡;
描述(‘主页’、功能(完成){
它('应该呈现索引视图',函数(完成){
柴
.request(server.app)
.get(“/”)
.end(函数(err、res){
控制台日志(res.body);
完成();
});
});
});
测试结果:

  Homepage
{ list: [ 'a', 'b' ] }
    ✓ should render index view


  1 passing (28ms)
  Homepage
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  
    <p>a</p>
  
    <p>b</p>
  
</body>
</html>
    ✓ should render index view


  1 passing (32ms)
备选案文2。您应该使用
列表
数据断言正确呈现的视图

index.js

var express=require('express');
var path=require('path');
var-app=express();
app.set('views',path.resolve('dirname',./views');
应用程序集(“查看引擎”、“ejs”);
app.get('/',函数(req,res){
常量数据=['a','b'];
res.render('index',{list:data});
});
module.exports={app};
视图/索引.ejs


文件

index.test.js

const{expect}=require('chai');
var chai=需要(“chai”);
var chaiHttp=require('chai-http');
var server=require('./索引');
var-should=chai.should();
柴胡;柴胡;
描述(‘主页’、功能(完成){
它('应该呈现索引视图',函数(完成){
柴
.request(server.app)
.get(“/”)
.end(函数(err、res){
console.log(res.text);
完成();
});
});
});
测试结果:

  Homepage
{ list: [ 'a', 'b' ] }
    ✓ should render index view


  1 passing (28ms)
  Homepage
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  
    <p>a</p>
  
    <p>b</p>
  
</body>
</html>
    ✓ should render index view


  1 passing (32ms)
主页
文件
a

b

✓ 应该呈现索引视图 1次通过(32毫秒)
选项1。您应该使用将
列表
数据发送到测试用例

例如

index.js

var express=require('express');
var-app=express();
app.get('/',函数(req,res){
常量数据=['a','b'];
res.json({list:data});
});
module.exports={app};
index.test.js

var chai=require('chai');
var chaiHttp=require('chai-http');
var server=require('./索引');
var-should=chai.should();
柴胡;柴胡;
描述(‘主页’、功能(完成){
它('应该呈现索引视图',函数(完成){
柴
.request(server.app)
.get(“/”)
.end(函数(err、res){
控制台日志(res.body);
完成();
});
});
});
测试结果:

  Homepage
{ list: [ 'a', 'b' ] }
    ✓ should render index view


  1 passing (28ms)
  Homepage
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  
    <p>a</p>
  
    <p>b</p>
  
</body>
</html>
    ✓ should render index view


  1 passing (32ms)
备选案文2。您应该使用
列表
数据断言正确呈现的视图

index.js

var express=require('express');
var path=require('path');
var-app=express();
app.set('views',path.resolve('dirname',./views');
应用程序集(“查看引擎”、“ejs”);
app.get('/',函数(req,res){
常量数据=['a','b'];
res.render('index',{list:data});
});
module.exports={app};
视图/索引.ejs


文件

index.test.js

const{expect}=require('chai');
var chai=需要(“chai”);
var chaiHttp=require('chai-http');
var server=require('./索引');
var-should=chai.should();
柴胡;柴胡;
描述(‘主页’、功能(完成){
它('应该呈现索引视图',函数(完成){
柴
.request(server.app)
.get(“/”)
.end(函数(err、res){
console.log(res.text);
完成();
});
});
});
测试结果:

  Homepage
{ list: [ 'a', 'b' ] }
    ✓ should render index view


  1 passing (28ms)
  Homepage
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  
    <p>a</p>
  
    <p>b</p>
  
</body>
</html>
    ✓ should render index view


  1 passing (32ms)
主页
文件
a

b

✓ 应该呈现索引视图 1次通过(32毫秒)