每天一剂Rails良药之javascript_test

本文介绍了一个 Rails 插件 javascript_test,它提供了一种简便的方法来为 JavaScript 文件创建单元测试。通过简单的命令行操作即可生成测试用例,并且能够自动运行所有测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天来看看javascript_test这个Rails plugin,它是对script.aculo.us库的单元测试框架的Rails风格测试封装
下载安装后,我们可以使用[b]ruby script/generate javascript_test foo[/b]来对public/javascripts/foo.js生成测试用的html文件
在测试用的html文件里我们可以写对JavaScript的测试,语法见[url]http://wiki.script.aculo.us/scriptaculous/show/UnitTesting[/url],如:
[code]
testExample: function() { with(this) {
var myElement = $('mydiv');
assertEqual("DIV", myElement.tagName);
assertEqual("DIV", myElement.tagName, "Hmm, not a DIV?");
}};
[/code]
然后我们可以使用[b]rake test:javascripts[/b]来自动运行所有JavaScript单元测试

我们通过javascript_test这个插件来看看怎样写generators
该插件的generator文件为javascript_test/generators/javascript_test/javascript_test_generator.rb
[code]
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
[/code]
我们要继承Rails::Generator::NamedBase基类,#{name}即可在字符串中得到运行script/generate javascript_test时的参数

以及怎样写rake
该插件的rake文件为javascript_test/tasks/javascript_test.rake
[code]
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
[/code]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值