我正在尝试使用Teaspoon(Jasmine版本)为我的Rails 3.2应用程序编写Javascript规范。我正在尝试编写一个类似这样的规范
describe("Fun", function() {
var page = require('webpage').create() //ERROR
it("should be so much fun", function() {
page.open('/pageToTest/')
expect($('#HereIsTheParty')).not.toBe( undefined );
});
});
但是,require('webpage')没有运行(错误:模块名称“system”尚未加载上下文),即使已经安装了Requirejs gem并且可以访问它来自Chrome控制台。
我的问题是,我可以轻松地使用Rails运行 require('网页'),还是应该使用其他东西?到目前为止,我一直在使用
,可能更容易使用Capybaradescribe "Fun", :type => :feature do
it "should be so much fun" do
visit '/pageToTest/'
expect(page).to have_content 'Success'
end
end
没有任何问题。但我更喜欢使用纯Javascript,因为在这种情况下它更方便。你们有什么感想?谢谢!
答案 0 :(得分:0)
使用Teaspoon规范不会在phantomjs的上下文中运行,它们会在浏览器的上下文中加载,因此无法访问phantomjs。只有内部的phantomjs驱动程序(repo中的runner.js)有任何phantomjs概念,它会加载一个带有javascripts的html页面。
听起来你可能正在用幻影卷曲Teaspoon,这并不能说明实际发生的事情。 Teaspoon仅使用phantomjs作为跑步者层,并且与Selenium或Capybara Webdriver(两者也支持)的处理方式没有区别。所以问题类似于询问如何从您的javascript规范中访问Selenium。