使用Mocha测试Node.js中路由提供的页面

使用Mocha测试Node.js中路由提供的页面,node.js,unit-testing,mocha.js,Node.js,Unit Testing,Mocha.js,我对测试非常陌生,我想知道我是否在正确的轨道上 基本上,我想检查我的服务器是否在某个路由上提供特定的index.ejs文件。这是我的两个it模块 it('should respond with status 200',function(done){ request.get(url+'/polls',function(error,response,body){ expect(response.statusCode).to.equal(200); done(

我对测试非常陌生,我想知道我是否在正确的轨道上

基本上,我想检查我的服务器是否在某个路由上提供特定的index.ejs文件。这是我的两个it模块

it('should respond with status 200',function(done){

    request.get(url+'/polls',function(error,response,body){
        expect(response.statusCode).to.equal(200);
        done();
    });

});


it('should render the polls.ejs file',function(done){

    request.get(url + '/polls',function(error,response,body){
        expect(body).to.equal('index.ejs')
        done();
    });

});
第一个测试通过,第二个测试显然没有通过,因为它需要字符串
“index.ejs”
,而不是解析后的HTML文件


一定有比把整个HTML内容写成字符串更好的方法来通过测试。请告诉我一个更好的方法。我在这里的测试是否也在正确的轨道上

事实上,我认为你不应该测试那种东西

因为你依赖其他人来提供网页,所以他的工作就是测试这一点。你只需要在那里测试你自己的逻辑

例如,如果您有一条路径
/add?a=12&b=15
,并且该路径旨在输出
27
,则您应该选择进行添加的代码部分。不是管理客户请求的部分


我可能错了(在这种情况下,我会更新这个答案,这样说),但这就是我处理我自己网站的单元测试的方式,它工作得很好。

这听起来很合乎逻辑,我也在想。我确实意识到我可以使用fs来实现这一点,但我认为这也没有必要,因为我将无法控制它,我认为你是对的。也是27而不是37;)