【发布时间】:2017-09-29 19:18:17
【问题描述】:
我正在尝试使用 Rails 5 编写测试并使用 minitest 这是我的测试代码...
@client = Coinbase::Wallet::Client.new(api_key: ENV['COINBASE_KEY'], api_secret: ENV['COINBASE_SECRET'])
sell_price = 4000
assert sell_price > last_buy_price * (1 + MoneyMakerThreshhold.find_buy.pct_change)
@client.stub :sell_price, "USD" do
{"base"=>"BTC", "currency"=>"USD", "amount"=>"#{sell_price}"}
end
svc = CryptoCurrencyService.new
svc.sell(last_transaction)
但是当它在下面执行时,打印出来的不是我模拟的“4000”卖价,而是客户返回的实际卖价......
def sell(last_transaction)
client = Coinbase::Wallet::Client.new(api_key: ENV['COINBASE_KEY'], api_secret: ENV['COINBASE_SECRET'])
sell_price = client.sell_price(currency: 'USD').amount
puts "buy: #{last_transaction.btc_price_in_usd} sellprice: #{sell_price} last:#{last_transaction.btc_price_in_usd}"
如何让我的模拟变成现实?
【问题讨论】:
-
你使用哪个版本的 coinbase-ruby?
标签: mocking ruby-on-rails-5 minitest stub