Nodejs,Express,Javascript Stack使用Mocha和Chai依赖关系进行BDD测试

时间:2014-09-17 13:51:20

标签: node.js unit-testing express mocha chai

使用nodejs,javascript和express stack我正在测试“使用Node和Express进行Web开发:利用Javascript堆栈”一书中的示例。我目前正在运行一个示例,使用mocha和chai进行页面测试。 github link

有人可以解释我会在哪里看到测试通过或失败的结果吗?有可能env没有设置为开发,这可能是我在测试期间没有看到变化的另一个原因。我不确定我应该观察什么。例如,浏览器或控制台中是否应该输出?以下是我正在实施的部分代码:

meadowlark.js

app.use( function( req, res, next){ 
     res.locals.showTests = app.get(' env') !== 'production' &&     
     req.query.test = = = '1'; next(); }); 

app.get('/ about', function( req, res) { 
       res.render(' about', { 
          fortune: fortune.getFortune(),
          pageTestScript: '/qa/tests-about.js' } ); });

// routes go here....

头脑中:

<head> 
<title> Meadowlark Travel </ title > 
{{# if showTests}} 
     <link rel ="stylesheet" href ="/vendor/ mocha.css"> 
{{/ if}} 
<script src ="// code.jquery.com/ jquery-2.0.2. min.js" > </ script > 
</head >

在体内 ......

{{# if showTests}} 
      < div id =" mocha" > </ div > 
      < script src ="/ vendor/ mocha.js" > </ script >
      < script src ="/ vendor/ chai.js" > </ script > 
      < script > 
           mocha.ui(' tdd'); 
           var assert = chai.assert; 
      </ script > 
      < script src ="/ qa/ tests-global.js" > </ script > 
      {{# if pageTestScript}} 
            < script src ="{{ pageTestScript}}" > </ script > 
      {{/ if}} 
      < script > mocha.run(); </ script > 
      {{/ if}} 
</ body >

QA /测试-global.js

suite(' Global Tests', function(){ 
    test(' page has a valid title', function(){ 
    assert(document.title && document.title.match(/\ S/) && 
           document.title.toUpperCase() != = 'TODO'); }); });

QA /测试-about.js

suite('" About" Page Tests', function(){ 
       test(' page should contain link to contact page', function(){ 
              assert( $(' a[ href ="/ contact"]'). length); }); });

为了对此进行测试,该指令告诉我以下内容:“现在,将test = 1添加到查询字符串(http:// localhost:3000 /?test = 1),您将看到测试在页面上运行。 “我没有看到任何差异?test = 1添加到查询字符串中。任何帮助将不胜感激。

更新: 按照作者在meadowlark.js服务器中执行的app.use命令,我能够成功地在浏览器中显示测试。

0 个答案:

没有答案