小编Gab*_*ita的帖子

带有模拟静态方法和非静态方法的 Rspec 测试

我有一个这样的方法:

def self.method
  #API CALL
end
Run Code Online (Sandbox Code Playgroud)

我正在为调用此静态方法的控制器方法编写测试。它是这样的:

it 'update order to confirmed' do
    Order.should_receive(:process_payment).and_return({})
    sign_in user
    attributes = FactoryGirl.attributes_for(:order, :valid_order)
    patch :confirm_order, params: { id: order.id, order: attributes }
    order.reload
    expect(order.confirmed).to eq true
end
Run Code Online (Sandbox Code Playgroud)

它工作正常。但是我不得不使这个方法不是静态的,并且测试开始失败。

在我的控制器中,我现在正在调用这样的方法:

Order.new.process_payment(@order)
Run Code Online (Sandbox Code Playgroud)

我猜问题出在我的模拟上,但我不知道如何解决它。关于如何使我的模拟适应这种新格式的任何想法?

unit-testing rspec ruby-on-rails mocking

6
推荐指数
1
解决办法
5160
查看次数

输入掩码 jquery:字母或数字

jquery 输入掩码中,我们可以指定数字和字母。如何获取用户可以输入字母或数字的格式,

A = 字母,9 = 数字。

我需要这样的面具AA - (A or 9)(A or 9) - 99

例如,它可以是 AA-99-99

在另一种情况下,它可以是AA-A9-99,或

AA-AA-99,

等等。试了很多,都不合适。

请指教。

javascript jquery

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

如何使用符号通过HTTParty访问JSON响应?

我正在使用HTTPparty gem在Rails应用程序中发送请求。这是一个例子:

order = HTTParty.get("https://sandbox.moip.com.br/v2/payments/#{o.payment_id}",
                headers: {"Authorization" => "Basic #{encode_auth_token}"})

order_status = JSON.parse(order.body)
Run Code Online (Sandbox Code Playgroud)

变量order接收一个json作为响应。我设法检索了所需的信息,但我想使用符号而不是字符串来访问json数据。

有什么方法可以使用符号访问我的json数据吗?例如:

order_status[:link]
Run Code Online (Sandbox Code Playgroud)

ruby hash https json ruby-on-rails

3
推荐指数
1
解决办法
719
查看次数

从拔除返回的Rails计数值

我正在构建一个Rails应用程序,我需要创建一些图表。

我正在运行此查询来检索用户的答案:

quiz = Quiz.select("answer1").where(completed: true).pluck(:answer1)
Run Code Online (Sandbox Code Playgroud)

查询为我返回: [1, 2, 1, 1, 1]

我想计算这些值并将其分组为: { 1 => 4, 2 => 1 }

我尝试使用分组和计数,但是它不起作用,我可以手动执行此操作,但是我想仅使用SQL来实现此目的。

我记得使用group by并使用sql进行计数,但是我不确定如何使用rails来执行此操作。

ruby sql group-by ruby-on-rails count

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

标签 统计

ruby-on-rails ×3

ruby ×2

count ×1

group-by ×1

hash ×1

https ×1

javascript ×1

jquery ×1

json ×1

mocking ×1

rspec ×1

sql ×1

unit-testing ×1