我正在使用express框架在coffee-script中编写node.js应用程序。在探索了几个选项后,我终于决定使用mocha和zombie.js。但是,我正在对UI进行严格测试。例如,要实现成功的用户身份验证,请执行以下操作:请参阅此处粘贴的代码my_gist
我真正想做的是以下内容:
get '/sessions/new'
,它将调用 SessionsController 并显示身份验证表单browser.visit
方法,输入字段的值并提交表单,这将生成帖子方法如果用户名和密码正确,我希望 SessionsController 做出相应的反应并重定向到正确的页面。
不幸的是,每当我运行测试时,它就会抱怨Zombie: require is not defined ReferenceError: require is not defined
。事实证明它不喜欢我的/javascripts/app.js中的两行
require("coffee-script")
require('./tfs.coffee')
即使我在访问方法后尝试从浏览器中提取任何信息,我也只是得到了未定义的值。显然我的断言都没有被测试。它只是通过了测试。有什么我做错了吗?是否有人使用Zombie.js在快递中测试咖啡脚本编写的应用程序遇到了这个问题?可能是什么修复?
答案 0 :(得分:0)
如果从浏览器加载/javascripts/app.js,您需要确保首先加载RequireJS(或定义require
的其他浏览器框架),或者将它们加载到HTML文档中:
<script src="coffee-script.js" type="text/javascript"></script>
<script src="tfs.coffee" type="text/coffee"></script>
在提取值之前,您可能需要等到页面完全加载。