2012-01-15 93 views
1

我正在使用express框架在coffee-script中编写node.js应用程序。在探索了几个选项后,我终于决定使用mocha和zombie.js。但是,我正在严格测试UI。例如,为了实现成功的用户身份验证我做到以下几点:看到这里my_gist使用Zombie测试Node.js应用程序

我真的很想做粘贴代码如下:

  • 呼叫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

您正在使用node.js正确运行测试,而不是从浏览器运行? – fent 2012-01-15 20:05:17

+0

来自node.js – joque 2012-01-18 18:22:14

回答

0

如果/javascripts/app.js正在从浏览器加载的,你想确保RequireJS(或其他一些浏览器的框架,定义require)第一次加载,否则你的HTML文件中加载它们:

<script src="coffee-script.js" type="text/javascript"></script>
<script src="tfs.coffee" type="text/coffee"></script>

在提取值之前,您可能需要等到页面完全加载。