原创作者: hideto
阅读:1112次
评论:0条
更新时间:2011-05-26
今天来看看javascript_test这个Rails plugin,它是对script.aculo.us库的单元测试框架的Rails风格测试封装
下载安装后,我们可以使用ruby script/generate javascript_test foo来对public/javascripts/foo.js生成测试用的html文件
在测试用的html文件里我们可以写对JavaScript的测试,语法见http://wiki.script.aculo.us/scriptaculous/show/UnitTesting,如:
然后我们可以使用rake test:javascripts来自动运行所有JavaScript单元测试
我们通过javascript_test这个插件来看看怎样写generators
该插件的generator文件为javascript_test/generators/javascript_test/javascript_test_generator.rb
我们要继承Rails::Generator::NamedBase基类,#{name}即可在字符串中得到运行script/generate javascript_test时的参数
以及怎样写rake
该插件的rake文件为javascript_test/tasks/javascript_test.rake
下载安装后,我们可以使用ruby script/generate javascript_test foo来对public/javascripts/foo.js生成测试用的html文件
在测试用的html文件里我们可以写对JavaScript的测试,语法见http://wiki.script.aculo.us/scriptaculous/show/UnitTesting,如:
testExample: function() { with(this) { var myElement = $('mydiv'); assertEqual("DIV", myElement.tagName); assertEqual("DIV", myElement.tagName, "Hmm, not a DIV?"); }};
然后我们可以使用rake test:javascripts来自动运行所有JavaScript单元测试
我们通过javascript_test这个插件来看看怎样写generators
该插件的generator文件为javascript_test/generators/javascript_test/javascript_test_generator.rb
class JavascriptTestGenerator < Rails::Generator::NamedBase def manifest record do |m| m.directory File.join("test","javascript") m.template 'javascript_test.html', File.join('test/javascript', "#{name}_test.html") end end end
我们要继承Rails::Generator::NamedBase基类,#{name}即可在字符串中得到运行script/generate javascript_test时的参数
以及怎样写rake
该插件的rake文件为javascript_test/tasks/javascript_test.rake
desc "Run tests for JavaScripts" task 'test:javascripts' => :environment do JavaScriptTest::Runner.new do |t| t.mount("/", RAILS_ROOT) t.mount("/test", RAILS_ROOT+'/test') t.mount('/test/javascript/assets', RAILS_ROOT+'/vendor/plugins/javascript_test/assets') Dir.glob('test/javascript/*_test.html').each do |js| t.run(File.basename(js,'.html').gsub(/_test/,'')) end t.browser(:safari) t.browser(:firefox) t.browser(:ie) t.browser(:konqueror) end end
评论 共 0 条 请登录后发表评论