rspec “tips”

以后会加,见到什么就写什么

1. "ruby.composite".should be "ruby.composite" =>false

   但"ruby.composite".should == "ruby.composite" => true

   4.should be 4 => true 

2. “uninitialized constant Command::Pathname (NameError)” 发现一个在rspec下可以运行通过,在工作环境下却不能通过的错误,原因很简单,Pathame类需要载入require "pathname",因为rspec已经有代码载入了,所以没有问题,在工作环境中没有,所以出问题

3. require File.expand_path(File.dirname(__FILE__) + '/../../config/environment')

    require 'cucumber/formatter/unicode' 

   经常报找不到要包括的文件,这样就可以了

4. 使用rspec 测试rails的时候,如果使用--drb来测试,要小心,如果你测试的是application_helper这样的文件里的函数,会一直提示找不到他们,因为你spork的环境没有被重新载入,这和有的东西要重启rails server一样的道理

5. rspec默认不直接在it 或describe中加入中文,不过在文件头中加入:# coding: UTF-8后就可以了。这点很重要,因为国人看英文和代码没有什么区别

6. gemfile会把gem的路径包含到项目中,不然像spork会出现no such file to load -- spork/kkkforker.rb,这时请在gemfile中加入 gem 'spork'

7. rspec里加入一个fixtures文件夹,建立如products.yml文件名,在_spec.rb里加入 fixtures :products 就等于你的products表里已经有这些个数据了。数据可以用中文

8. 去除数组中空元素的办法,a.compact,还有一个更加直观和简单 a-[nil]

9. ruby建立数组很方便

irb(main):002:0> %w(1 2 3)
=> ["1", "2", "3"]
irb(main):003:0> %w[1 2 3]
=> ["1", "2", "3"]
irb(main):004:0> %w{1 2 3}
=> ["1", "2", "3"]

10. 需要重构的,不仅是代码,还有注释

11. == equal? eql?

irb(main):036:0> i = 1
=> 1
irb(main):037:0> f = 1.0
=> 1.0
irb(main):038:0> i == f
=> true
irb(main):039:0> i.eql?(f)
=> false
irb(main):040:0> i.equal?(f)
=> false
irb(main):041:0> f2 = 1.0
=> 1.0
irb(main):042:0> f2.eql?(f)
=> true
irb(main):043:0> f2.equal?(f)
=> false

12. 字符串

irb(main):097:0> %q/"123"/
=> "\"123\""
irb(main):098:0> <<hello
irb(main):099:0" 1"2"3
irb(main):100:0" hello
=> "1\"2\"3\n"

 13. rails3显示html输出:

<%=raw @news.content %> 

 

 

 

你可能感兴趣的:(rspec “tips”)