使用Rails 3.2以及最新的Rspec和Capybara,这意味着我的Capybara规格位于spec/features。
我真的是Rails和测试的新手,但我想习惯测试。在测试之前,我最终实现了OAuth。我终于使它工作了,现在我正在尝试进行追溯测试(所以我至少知道将来是否会失败)。我正在尝试按照本教程进行操作,但操作不正常。这是我所做的:
1)创建spec/support/integration_spec_helper.rb于:
module IntegrationSpecHelper
def login_with_oauth(service = :google)
visit "/auth/#{service}"
end
end
2)修改spec/spec_helper为包含config.include IntegrationSpecHelper, :type => :request在Rspec.configuredo块内。
3)创建spec/features/omniauth_spec.rb于:
require 'spec_helper'
feature 'testing oauth' do
scenario 'should create a new tiger' do
login_with_oauth
visit new_tiger_path
fill_in 'tiger_name', :with => 'Charlie'
fill_in 'tiger_blood', :with => 'yes'
click_on 'Create Tiger'
page.should have_content("Thanks! You are a winner!")
end
end
Run Code Online (Sandbox Code Playgroud)
当然会失败(我的应用程序中没有老虎),但我希望它继续失败visit new_tiger_path。相反,运行该规范,我得到:
1) testing oauth should create …
尝试通过Code School CoffeeScript课程来掌握CoffeeScript和jQuery.
其中一个摘录是$("<li>" + name + "</li>").我设法弄清楚这$是jQuery(右边?)的别名,所以我猜这意味着我们用字符串调用jQuery函数(name是一个字符串,由两个文字包围).
那么......这个jQuery功能本身有什么作用?试着看着api.jquery.com,很难搞清楚.谢谢!
我有一个toys控制器,用户可以用来声称玩具玩.现在,该claim方法是在控制器级别实现的(正如我的回答所建议的那样).
然而,现在它变得有点胖,声称逻辑真的不应该存在:如果孩子已经有3个玩具,孩子不能要求玩具,孩子不能要求另一个孩子声称的玩具,等等.这种逻辑(在我看来)的合理位置在child模型中,因为我描述了孩子的行为(他们可能会做什么,也可能不行).
也就是说,如果我这样做,toys#claim控制器动作将从child模型中调用方法.这是代码气味/不良做法吗?
(我猜有人会建议我使用服务对象.如果你这样做,请指出一个简单的教程?最近关于这个的RailsCast对我来说有点太复杂了.)
提前致谢!
在Windows 8 x64下的virtualenv中运行Python,通过flask megatutorial工作.有一个非常全面的设置指南,我要做的一件事就是安装sqlalchemy-migrate.
我按照指南中给出的顺序执行此操作,没有跳过任何步骤.随着virtualenv活跃,注意使用正确的解释器,我运行:
pip install sqlalchemy-migrate
Run Code Online (Sandbox Code Playgroud)
在这一点上它会嘎吱作响并最终返回:
Installed c:\users\erez\code\flask-megatutorial\flask\build\sqlalchemy-migrate\pbr-0.5.23-py2.7.egg
running egg_info
creating pip-egg-info\sqlalchemy_migrate.egg-info
writing requirements to pip-egg-info\sqlalchemy_migrate.egg-info\requires.txt
writing pip-egg-info\sqlalchemy_migrate.egg-info\PKG-INFO
writing top-level names to pip-egg-info\sqlalchemy_migrate.egg-info\top_level.txt
writing dependency_links to pip-egg-info\sqlalchemy_migrate.egg-info\dependency_links.txt
writing entry points to pip-egg-info\sqlalchemy_migrate.egg-info\entry_points.txt
[pbr] Processing SOURCES.txt
writing manifest file 'pip-egg-info\sqlalchemy_migrate.egg-info\SOURCES.txt'
warning: LocalManifestMaker: standard file '-c' not found
error: The system cannot find the file specified
Run Code Online (Sandbox Code Playgroud)
而现在我被卡住了.:)用谷歌搜索出来的.似乎与PBR有关,无论是什么,但没有解决方案.还有一个pip.log文件,但它太大了,不能粘贴在这里,我知道StackOverflow对要点皱眉.如果你认为它会有所帮助,仍然乐意将它粘贴到一个要点上.
非常感激任何的帮助.