gem install factory_girl
文章是从个人博客转过来的, 可以直接访问 iwangzheng.com
https://github.com/thoughtbot/factory_girl
https://github.com/thoughtbot/factory_girl/blob/master/GETTING_STARTED.md
今天项目结束,打算搞一下接手这个项目之前的单元测试,因为接受的时候很多测试是跑不通的,于是重新学习了一下 factory_girl
gem install factory_girl (半天没响应)
由于国内网络原因(你懂的),导致 rubygems.org 存放在 Amazon S3 上面的资源文件间歇性连接失败。所以你会与遇到 gem install rack 或 bundle install 的时候半天没有响应,具体可以用 gem install rails -V 来查看执行过程。现在来更换一下gem source
$ gem sources --remove https://rubygems.org/
$ gem sources -a http://ruby.taobao.org/
$ gem sources -l
*** CURRENT SOURCES *** http://ruby.taobao.org
# 请确保只有 ruby.taobao.org
Configure your test suite
# rspec
RSpec.configure do |config|
config.include FactoryGirl::Syntax::Methods
end # Test::Unit
class Test::Unit::TestCase
include FactoryGirl::Syntax::Methods
end # Cucumber
World(FactoryGirl::Syntax::Methods) # Spinach
class Spinach::FeatureSteps
include FactoryGirl::Syntax::Methods
end # MiniTest
class MiniTest::Unit::TestCase
include FactoryGirl::Syntax::Methods
end # MiniTest::Spec
class MiniTest::Spec
include FactoryGirl::Syntax::Methods
end # minitest-rails
class MiniTest::Rails::ActiveSupport::TestCase
include FactoryGirl::Syntax::Methods
end 由于我们用的是rspec,所以选第一种,所在spec/spec_helper.rb里配置第18行那句
1 # -*- encoding : utf-8 -*-
2 # This file is copied to spec/ when you run 'rails generate rspec:install'
3 ENV["RAILS_ENV"] ||= 'test'
4 require File.expand_path("../../config/environment", __FILE__)
5 require 'rspec/rails'
6 require 'rspec/autorun'
7 require "email_spec"
8
9 # Requires supporting ruby files with custom matchers and macros, etc,
10 # in spec/support/ and its subdirectories.
11 Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f}
12 Dir[Rails.root.join("lib/mock*.rb")].each {|f| require f}
13
14 RSpec.configure do |config|
15 config.fixture_path = "#{::Rails.root}/spec/fixtures"
16 config.use_transactional_fixtures = true
17 config.infer_base_class_for_anonymous_controllers = false
18 config.include FactoryGirl::Syntax::Methods
19 config.global_fixtures = :all
20 config.include(EmailSpec::Helpers)
21 config.include(EmailSpec::Matchers)
22 end
Defining factories
# This will guess the User class
FactoryGirl.define do
factory :user do
first_name "John"
last_name "Doe"
admin false
end # This will use the User class (Admin would have been guessed)
factory :admin, class: User do
first_name "Admin"
last_name "User"
admin true
end
end
一般在factories的文件夹,以modle名字来命名factory,这样更清晰
来看看我写的这段
FactoryGirl.define do
factory :cms_tv_version do
title "2.0.0"
state 1
end
end
gem install factory_girl的更多相关文章
- mac gem install nokogiri error
Gem::Ext::BuildError: ERROR: Failed to build gem native extension. /Users/angela/.rbenv/versions/1.9 ...
- OSX 10.11 cocoapods安装命令: sudo gem install -n /usr/local/bin cocoapods
10.11 cocoapods安装命令: sudo gem install -n /usr/local/bin cocoapods
- gem install 出现Errno::ECONNRESET: Connection reset by peer - SSL_connect (https://api.rubygems.org
在安装了rvm来管理多版本的ruby之后,想在不同环境下安装一些gems,结果gem install puma 之后,发现一次又一次失败. gem install 出现Errno::ECONNRESE ...
- sudo gem install cocoapods 没反应问题
1. 尝试更新 sudo gem update --system 2. 查看安装详细 sudo gem install cocoapods -V 3.详细使用有个链接 http://blog.csdn ...
- ruby on rails gem install pg时无法安装
gem install pg -v '0.18.2' Building native extensions. This could take a while... ERROR: Error insta ...
- sudo gem install cocoapods
在使用IOS_BaiduSDK的时候,需要用到cocoapods,所以就需要按照步骤继续着.但是在过程中会遇到一些问题: 1. sudo gem install cocoapods 运行这个报错 Ru ...
- 在openSUSE13.2上gem install rails -v 4.1成功,但是之后不存在rails命令解决
解决方案为,不要用sudo gem install就好了,卧槽
- 本地安装gem install --local redis-stat-0.4.13.gem
因为主机环境不能联外网,悲哀,所以只能想办法下载包,上传到主机来安装 环境:el6.x86_64 1. gem 安装[http://centos.ustc.edu.cn/centos/6/os/x86 ...
- gem install走代理,速度刚刚的
有个树莓pi,安装了shadowsocks 和 cow ,做代理,走ipv6,学校不收ipv6流量钱.速度也不错,快的下载可达10M/s. gem install xx遇到墙了. nano ~/.ge ...
随机推荐
- 取当前的地址栏的Url和url中的参数
看到这样一段代码: exports.showLogin = function (req, res) { req.session._loginReferer = req.headers.referer; ...
- 使用TinkPHP实现品字形布局
一.后台管理模版 后台管理模版通常使用frameset/iframe来布局.例如: <!DOCTYPE html> <html> <head> <title& ...
- 第十章:Javascript子集和扩展
本章讨论javascript的集和超集,其中子集的定义大部分处于安全考虑.只有使用这门语言的一个安全的子集编写脚本,才能让代码执行的更安全.更稳定.ECMScript3标准是1999年版本的,10年后 ...
- php发送get、post请求的6种方法简明总结
方法1: 用file_get_contents 以get方式获取内容: ? 1 2 3 4 5 <?php $url='http://www.jb51.net/'; $html = file_g ...
- nginx 出现413 Request Entity Too Large问题的解决方法
nginx 出现413 Request Entity Too Large问题的解决方法 使用php上传图片(大小1.9M),出现 nginx: 413 Request Entity Too Large ...
- 传说中的WeixinJSBridge和微信rest接口
直接上图,金山的APP“微信导航”,从界面上看有粉丝数等关键数据,实现了直接关注功能,莫不是rest接口?这江湖是大佬们的江湖,小喽啰只有眼馋的份咯. 很早就听说过WeixinJSBridge,不过官 ...
- 50个提高PHP编程效率的方法
用单引号代替双引号来包含字符串,这样做会更快一些.因为PHP会在双引号包围的字符串中搜寻变量,单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的“函数”(译注:PHP手册 ...
- Javascript继承机制的设计
写软工作业时各种蛋疼:主要在于Javascript没有“子类”“父类”“接口”的概念,只能使用prototype来实现,看了下面一篇文章,感觉写得很不错~ http://www.ruanyifeng. ...
- shell将输入的参数逆序
#! /usr/bin/ksh count=$# //总共输入参数 cmd="echo" while [[ $count -gt 0 ]] do cmd="$cmd \ ...
- Git环境的搭建及使用
管理工具 1. Git环境的搭建 a.下载Git installer,地址:http://git-scm.com/downloads a1.参考文档地址:http://www.open-open.co ...