对于测试我一直写的很烂,RSPEC曾经看过,不过到头也没写出什么好的测试,最近发现了shouda,看到写法很简单,例如:
class PostTest < Test::Unit::TestCase should belong_to(:user) should have_many(:tags).through(:taggings) should validate_uniqueness_of(:title) should validate_presence_of(:body).with_message(/wtf/) should validate_presence_of(:title) should validate_numericality_of(:user_id) end
相比 RSPEC的写法,我比较喜欢这种写法,自动测试,用的最多的还是autotest,不过autotest在我mac 10.6.4上居然有这样那样的问题,发现watchr,所说是速度更快,更方便,于是便拿来一试。
1.安装所需的gem
sudo gem install watchr #mac 要安装 sudo gem install ruby-fsevent #Linux/BSD 要安装 sudo gem install rev #安装shoulda sudo gem install shoulda
2.修改Gemfile,执行bundle:install
group :test do gem 'shoulda' end
3.实现watchr 自动化测试,watchr的自动化方法是监视文件,例如
watch('test/.*/.*_test\.rb') { |m| run_test_file(m[0]) }
所以我们要有个文件 ,如果是RSPEC的话,要用这个文件 spec.watchr
Test/Unit可以使用这个 tests.watchr
例如,我把文件 放到项目根目录下/tests.watchr
4.安装 growl,实现提示功能,
下载 :http://growl.info/
安装 Extras/growlnotify/growlnotify.pkg
5.复制附件二张图片(可自己随便找二张)到
~/.watchr_images/pass.png ~/.watchr_images/fail.png
6.要进行自动测试,只要运行
watchr tests.watchr
------- 继续打标记: 转载注明: javaeye-- doabit.. ----------------------------