Node.js 使用局部变量进行测试快速渲染
以下是我的示例代码: 文件:index.jsNode.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(
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毫秒)