在Mocha中使用EJStesting渲染视图

我已完成20个testing通过构build一个CRUD应用程序。 我正在使用EJS来渲染视图,现在我的testing有问题。

作为一个简单的例子,假设我正在检查是否发送了一个GET请求发送给'/' ,JSON将被发送像res.json({message:'hello'})所以我可以设置我的testing在摩卡这样res.body.message相当于'你好'。

但是,如果我想呈现index.ejs页面而不是发送JSON。 所以它看起来像res.render('index',{message:'hello'}) 。 我如何testingres.render() ? 或者更具体地说,我如何testing传递给res.render()的对象?

编辑:解决这个问题(和这种问题)可以通过使用称为functiontesting的testing范例解决。 去谷歌上查询。

testing一个http 获得本质上可以理解为需要testing一个路由。 所以,你的testing应该包含一个expect子句(至于在寻找路由的时候会发生什么)和响应来validation,在这种情况下是一个JSON对象。

使用摩卡,您可以将testing描述为

  it('should respond with JSON data', function (done) { request(server) .get('/about/jv') .expect(200) .end(function (err, response) { assert.equal(response.header['content-type'], 'application/json; charset=utf-8'); assert.deepEqual(response.body, { "data":{ "username":"hello"} }); done(); }); }); 

因为你需要一个服务器来运行一个“supertest”的http请求,所以使用一个节点包来启动你的server.js来初始化服务器并用请求(服务器)来testing。

检查这个 – GitHub仓库有这个需求的完整testing模板。 它还对返回的JSON对象进行了testing。