使用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命令,我能够成功地在浏览器中显示测试。