小编Bry*_*Ash的帖子

如何在rspec中使用capybara来点击下拉选项

我在rails 3.2.3和capybara上使用ruby来帮助创建请求规范.我的目标是创建一个测试注销的规范请求.网页:

<li class="dropdown">
  <a class="dropdown-toggle" data-toggle="dropdown">
    Welcome <%= current_user.first_name + " "+ current_user.last_name%>
    <b class="caret"></b>
  </a>
  <ul class="dropdown-menu">
    <a href="#">
      <%= link_to "Sign out", destroy_user_session_path, :method => :delete%>
    </a>
  </ul>
</li>
Run Code Online (Sandbox Code Playgroud)

对于测试,我有

describe "sign out" do
  it "should let user to sign out" do
    login_as user, :scope => :user
    # click_on "Welcome #{user.first_name} #{user.last_name}"
    # Now click on Sign out
  end
end
Run Code Online (Sandbox Code Playgroud)

我不知道如何使用capybara点击退出,因为它位于下拉菜单中,因此在页面上不可见.有人知道吗 ?

有没有其他方法可以点击下拉菜单中的元素?

testing rspec ruby-on-rails logout capybara

20
推荐指数
3
解决办法
2万
查看次数

Coffeescript正则表达式插值

Coffeescript支持字符串插值:

user = "world"
greeting = "Hello #{user}!"
Run Code Online (Sandbox Code Playgroud)

是否可以像在字符串中一样在正则表达式中使用插值?例如

regex = /Hello #{user}/g
Run Code Online (Sandbox Code Playgroud)

PS我知道我可以使用RegExp(greeting, 'g'),我只想要更清洁的代码.

coffeescript

20
推荐指数
1
解决办法
5201
查看次数

SQL查询通过中间表

给出以下表格:

Recipes
| id | name
| 1  | 'chocolate cream pie'
| 2  | 'banana cream pie'
| 3  | 'chocolate banana surprise'

Ingredients
| id | name
| 1  | 'banana'
| 2  | 'cream'
| 3  | 'chocolate'

RecipeIngredients
| recipe_id | ingredient_id
|     1     |      2
|     1     |      3
|     2     |      1
|     2     |      2
|     3     |      1
|     3     |      3
Run Code Online (Sandbox Code Playgroud)

如何构建SQL查询以查找recipe.name ='chocolate'和ingredients.name ='cream'的配方?

sql join where relational-division

18
推荐指数
2
解决办法
3万
查看次数

获取NameError:使用rspec测试实例变量时,不允许使用`format'作为实例变量名

我有以下测试:

let(:client) { Descat::Client.new }

describe 'poblacio' do
  it 'should set format correctly' do
    client.poblacio('v1','json','dades')
    expect (client.instance_variable_get(:format)).to eq('json')
  end
end
Run Code Online (Sandbox Code Playgroud)

我有以下正在测试的代码:

module Descat
  class Client
    BASE_URL = 'http://api.idescat.cat/'

    def initialize(attributes = {})
      attributes.each do |attr, value|
        self.send("#{attr}=", value)
      end
    end

    def poblacio(version, format, operation, *args)
      @format = format
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

运行测试我一直在'

Failure/Error: expect (client.instance_variable_get(:format)).to eq('json')
     NameError:
Run Code Online (Sandbox Code Playgroud)

但是,更改名称并没有帮助.

"

ruby rspec

17
推荐指数
1
解决办法
1万
查看次数

Rails 4.0中的@ font-face,找不到自定义字体的Sass URL

在我的Rails项目中,我尝试使用自定义字体.有很多与这个问题相关的答案,就像这个没有帮助的答案,我编辑development.rb:

# Add the fonts path
config.assets.paths << Rails.root.join('app', 'assets', 'fonts')

# Precompile additional assets
config.assets.precompile += %w( .svg .eot .woff .ttf )
Run Code Online (Sandbox Code Playgroud)

它仍然显示 No route matches [GET] "/assets/chalkduster-webfont.woff"

我设置我url:

@font-face {
   font-family: 'chalkdusterregular';
    src: url('chalkduster-webfont.eot');
    src:url('chalkduster-webfont.svg#chalkdusterregular') format('svg'), 
    url('chalkduster-webfont.eot?#iefix') format('embedded-opentype'),
         url('chalkduster-webfont.woff') format('woff'),
         url('chalkduster-webfont.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;

}
Run Code Online (Sandbox Code Playgroud)

font_path('')在源代码中尝试过,font-url()但它也无法运行.:(

fonts ruby-on-rails font-face ruby-on-rails-4

15
推荐指数
1
解决办法
2万
查看次数

Ruby元编程,RSpec如何"应该"工作?

我正在阅读RSpec,我正在试图弄清楚RSpec的"应该"是如何实现的.

有人可以介绍一下这个函数的元性质是如何工作的吗?

代码位于:

http://github.com/dchelimsky/rspec/blob/master/lib/spec/expectations/extensions/kernel.rb

TIA,

-daniel

澄清:

target.should == 5
Run Code Online (Sandbox Code Playgroud)

目标的价值是如何传递给"应该"的,而这又是"=="与5的对比?

ruby rspec metaprogramming

13
推荐指数
1
解决办法
2011
查看次数

如何在RSpec中测试send_data?或者......在这种情况下我应该测试什么?

使用RSpec测试以下代码的最佳方法是什么?我应该测试什么?show动作打开一个文件并对其进行流式传输.此外,如果操作依赖于某处存在的文件,我可以测试吗?

def show
  image_option = params[:image_option]
  respond_to do |format|
    format.js
    format.pdf {open_bmap_file("#{@bmap.bmap_pdf_file}", 'application/pdf', "#{@bmap.bmap_name}.pdf", "pdf", "pdf")}
    format.png {open_bmap_file("#{@bmap.bmap_png_file}", 'image/png', "#{@bmap.bmap_name}.png", "png", image_option)}
  end
end

private

def open_bmap_file(filename, application_type, send_filename, format, image_option = nil)
  filename = "app/assets/images/image_not_available_small.png" unless File.exist? filename
  path = Bmap.bmaps_pngs_path

case image_option
  when "image"
    filename = "#{@bmap.bmap_name}.png"
  when "large_thumbnail"
    filename = "#{@bmap.bmap_name}_large_thumb.png"
  when "thumbnail"
    filename = "#{@bmap.bmap_name}_thumb.png"
  when "pdf"
    filename = "#{@bmap.bmap_name}.pdf"
    path = Bmap.bmaps_pdfs_path
  else
    filename = "#{@bmap.bmap_name}.pdf"
    path = Bmap.bmaps_pdfs_path
end

begin
  File.open(path + filename, 'rb') …
Run Code Online (Sandbox Code Playgroud)

rspec ruby-on-rails

13
推荐指数
1
解决办法
9852
查看次数

什么是相当于Ruby的"检查"的JavaScript?

在Ruby中,你可以做到foo.inspect并且无论类型如何,它都能为任何对象输出一些理智的东西.

如何在JavaScript中实现相同的功能?

javascript ruby debugging

12
推荐指数
2
解决办法
2282
查看次数

骨干自定义事件

假设我有两个视图(paginationview和postsview)和一个集合(postscollection).每当在分页视图中单击.next按钮时,我调用postscollection中的下一个函数,post集合从服务器获取新页面的帖子(代码被简化).现在在我的帖子视图中,我只想显示最后一页中的帖子.我不想将我的视图绑定到集合中的"add"事件,因为有更多的情况会将某些内容"添加"到集合中.我希望我的postsview中的'renderlist'功能只在我的postscollection中调用'nextPage'函数时被调用.如何将这些功能连接在一起?

//分页视图

var PaginationView = Backbone.View.extend({
    events:{
        'click a.next' : 'next',
    },

    next: function() {
        this.collection.nextPage();
        return false;
    }
});
Run Code Online (Sandbox Code Playgroud)

//集合

var PostsCollection = Backbone.Collection.extend({
    model: model,

    initialize: function() {
        _.bindAll(this, 'parse', 'url', 'pageInfo', 'nextPage', 'previousPage');
        this.page = 1;
        this.fetch();
    },

    parse: function(response) {
        console.log(response);
        this.page = response.page;
        this.perPage = response.perPage;
        this.total = response.total;
        this.noofpages =response.noofpages;
        return response.posts;
    },

    url: function() {
        return '/tweet/' + '?' + $.param({page: this.page});
    },

    nextPage: function() {
        console.log("next page is called");
        this.page = this.page …
Run Code Online (Sandbox Code Playgroud)

javascript backbone.js backbone-events backbone-views

11
推荐指数
1
解决办法
1万
查看次数

如何设置默认的Elixir混合任务

如果我有一个mix.exs类似的文件:

defmodule Mix.Tasks.My_task do
  use Mix.Task

  @shortdoc "Perform my task"

  def run(_) do
    IO.puts "Working"
  end
end

defmodule ElixirKoans.Mixfile do
  use Mix.Project

  def project do

  ...    

end
Run Code Online (Sandbox Code Playgroud)

我很乐意用这个来运行mix my_task.

我如何my_task成为默认值,所以当我在mix没有任务的情况下运行时会执行它?

elixir-mix elixir

10
推荐指数
1
解决办法
2007
查看次数