我使用capybara进行集成/验收测试.它们在/spec/requests/文件夹中.现在我在验收测试中使用了一些帮助方法.一个例子是register_user这样的
def register_user(user)
visit home_page
fill_in 'user_name', :with => user.username
fill_in 'password', :with => user.password
click_button 'sign_up_button'
end
Run Code Online (Sandbox Code Playgroud)
我想在几种不同的验收测试中使用这种方法(它们在不同的文件中).包含这个的最佳方法是什么?我试过把它放进去,spec/support/但它并没有为我工作.花了一些时间后,我意识到我甚至不知道这是否是一个好方法,所以我想我会在这里问.
注意:我使用的是rails 3,spork和rspec.
可能重复:
gVim会在右侧显示每个带星号的文件(和粗体)?
我正在使用带有nerdtree插件的vim进行我的rails项目,并且一些文件显示*附加到文件名.它们也是与其他文件不同的颜色.
edit.html.erb*
index.html.erb
show.html.erb*
Run Code Online (Sandbox Code Playgroud)
什么*意思?
我正在Heroku上创建一个rails 3应用程序,它使用postgres作为数据库.在我的rails迁移中,我在所有ID列上添加了索引.这是一个错误吗?我开始怀疑postgres是否在ID列上默认有索引.
如果这是一个错误,我该如何解决?如果我只是编写一个rails迁移来删除ID列中的索引将修复所有内容?
是否可以在asp.net MVC 3上进行TDD?如果是这样,有什么好的在线资源?据我所知,MVC 3是最新版本.但是我谷歌的大多数tdd文章都是针对MVC 1.即使是我在MVC中找到的TDDing中仅有的两本书都是1.0
即使在微软官方网站上,MVC TDD演练的文章也适用于MVC 2.0.
它开始让我觉得TDD在asp.net MVC上是不实用的,或者它没有得到很大的支持.
我已经运行VMWare融合了一段时间,并用它来创建我的ubuntu rails dev环境和Web服务器的新实例.
我正在尝试过渡到使用virtualbox和vagrant.
根据我的理解,virtualbox运行VM并且vagrant管理实例.在VMWare Fusion中,它同时执行VM和实例管理.这是否意味着将virtualbox与vagrant一起使用与使用VMWare Fusion几乎相同?
如何存根file.read调用以便它返回我想要的内容?以下不起作用:
def write_something
File.open('file.txt') do |f|
return contents = f.read
end
end
# rspec
describe 'stub .read' do
it 'should work' do
File.stub(:read) { 'stubbed read' }
write_something.should == 'stubbed read'
end
end
Run Code Online (Sandbox Code Playgroud)
看起来存根被应用于File类而不是我的块中的文件实例.所以按预期File.read回报stubbed read.但是当我运行我的规范时,它失败了.
如何在Heroku上管理我的数据库索引?我知道关于水龙头,但这似乎是推/拉数据.
如何查看,更新,删除索引?我的dev db是sqlite3,而在Heroku上它是postgres.
如果我在我的rails项目中使用spork并且有这样的spec_helper.rb文件
require 'spork'
Spork.prefork do
...
end
Spork.each_run do
...
end
Run Code Online (Sandbox Code Playgroud)
这是否意味着我需要在运行我的规格时总是运行spork rspec spec?意思是,如果我还没有$ spork在终端窗口中执行,是否意味着我的规格将无法正常运行?
使用rails和rspec,当我使用rails generate带有models/views/controllers 的命令时,很容易让rspec为我生成必要的文件.但是现在我想为我写的模块编写规范.模块是/lib/my_module.rb这样我创建了一个规范/spec/lib/my_module_spec.rb
我遇到的问题是,当我尝试运行rspec spec/该文件时my_module_spec.rb,lib/my_module.rb无法找到对我的模块的引用.这样做的正确方法是什么?
只是FYI my_module_spec.rb文件确实已经require 'spec_helper'有了
require 'spec_helper'
describe "my_module" do
it "first test"
result = MyModule.some_method # fails here because it can't find MyModule
end
end
Run Code Online (Sandbox Code Playgroud) 我的代码目前看起来像这样
numbers = [1, 2, 3, 4, 5]
def pop_three
pop = []
3.times { pop << numbers.pop }
return pop
end
Run Code Online (Sandbox Code Playgroud)
有什么pop_three方法可以在一行中执行方法内部的操作吗?
我基本上想要做一些事情,numbers.slice(0, 3)但删除切片中的数组项.
嗯... hrmmm,我想我刚刚意识到我可以尝试切片!