星期五 2007年08月31日
rjs的使用
参见:ajax on rails第5章。下载:http://www.gaimcn.com/bbs/attachment.php?aid=20
事先创建好view, controller
1.在view里创建一个远程链接,link_to_remote "go", :url=>{:action=>"go_with_rjs"} , 如果是form_remote_tag也可以。
2.在controller里创建一个action
def go_with_rjs
@msg="let's go"
end
3.在目录 app/views/<controller名字> 下建一个 go_with_rjs.rjs ,名字与action相同。
内容:
page.alert("#{msg}")
这样点击那个链接就出一个alert信息。
具体page的用法参见Module
ActionView::Helpers::PrototypeHelper::JavaScriptGenerator::GeneratorMethods
也可以看ajax on rails,里面更详细,另外有多种效果可以使用。
rjs给了一种选择,让你在ajax的时代也可以重回ruby,如果你不喜欢js的话。
Posted at 08:48下午 八月 31, 2007 by magicgod in 原创 |
rails的缺省三层测试
rails缺省的测试建议就是三层:
1. Unit Test 单元测试,用于测试各种域对象,也可以测试一些工具类。
2. Functional Test 功能测试,其实是对于controller测试,有点象web层面的单元测试。
3. Integration Test 集成测试,这个最贴近业务需求,往往是将几个页面串起来,以一个业务动作为基本单位。
这些测试都是写代码来测试,似乎并没有录制工具来生成,不过因为ruby的代码实在是非常简洁,写起来应该不算费力的。最难的web测试已经分解为一些预置的mock类,很容易写代码来测试。
测试是需要环境支持的,rails 缺省使用Test数据库环境,大多数应用所指的环境就是数据库环境,如果有特殊的环境要求还可以在setup里配置。
测试数据是放在 Test Fixture里的,都是一些简单的yaml文件,由于支持erb,使得测试数据可以成为动态数据,比如当前时间的前一个小时、sha1加密的密码之类。这些动态数据的灵活性要超过SQL和dump文件。
当你开始测试应用的时候,需要的是:
1. 准备好Test数据库环境(基本上只要建一个库,另外用rake从开发数据库来生成一个schema.rb)。
2. 准备好测试数据 Test Fixture,填好内容,并且理顺他们之间的关系。
3. 写好三层测试代码。
最后,开始 rake test,一切就开始了。虽然没有红绿条,但是感觉比JUnit要踏实。
Posted at 08:47下午 八月 31, 2007 by magicgod in 原创 |