de-vraag
  • 質問
  • タグ
  • ユーザー
通知:
報酬:
登録
登録すると、質問に対する返答やコメントが通知されます。
ログイン
すでにアカウントをお持ちの方は、ログインして新しい通知を確認してください。
追加された質問、回答、コメントには報酬があります。
さらに
ソース
編集
 GlyphGryph
GlyphGryph
質問

Rspec:(これまたはそれ)

2つ(またはそれ以上)の結果のいずれかが受け入れられる状況でrspecを書く最良の方法は何でしょうか?

ここに私がしたいことの例があります。これは明らかに間違っている(私は思う)が、それはあなたに私が達成しようとしていることの要点を与えるはずです:

it "should be heads or tails" do
  h="heads"
  t="tails"
  flip_coin.should be(h || t)
end

そして、はい、私は私自身のrspecのmatcher "should_be_one_or_the_other(option1、option2)"を書くことができることを知っていますが、それはちょっとのようです - 私はよりよい解決を望んでいました。

31 2011-10-27T21:00:36+00:00 5
プログラミング
ruby
rspec
Sergey Potapov
6日 6月 2013 в 3:26
2013-06-06T15:26:32+00:00
さらに
ソース
編集
#56793144

ActiveSupportは Object#in?メソッドを提供します。それをRSpecと組み合わせて、単に以下を使用することができます:

flip_coin.should be_in(["heads", "tails"])

または、新しいRspec 3構文を使用します。

expect(flip_coin).to be_in(["heads", "tails"])
28
0
Camway
3日 12月 2015 в 9:44
2015-12-03T21:44:08+00:00
さらに
ソース
編集
#56793145

私はこれが古かったことを知っていますが、RSpec 3.4でこれに触れました。 またはキーワードを入力してください。これは有効です:

expect(flip_coin).to eq('heads').or(eq('tails'))
19
0
Tumas
27日 10月 2011 в 9:05
2011-10-27T21:05:36+00:00
さらに
ソース
編集
#56793142

私はおそらくこのようなものを書くだろう:

it "should be heads or tails" do
  ["heads", "tails"].should include flip_coin
end
14
0
weexpectedTHIS
27日 10月 2011 в 11:12
2011-10-27T23:12:28+00:00
さらに
ソース
編集
#56793143

それを右の期待通りに書く別の方法:

it 'should be heads or tails' do
  flip_coin.should satisfy{|s| ['heads', 'tails'].include?(s)}
end
11
0
Prashanth Sams
28日 5月 2017 в 2:27
2017-05-28T14:27:10+00:00
さらに
ソース
編集
#56793146

be の正規表現でまたは

expect(flip_coin).to eq('heads').or(be == 'tails')
2
0
質問の追加
カテゴリ
すべて
技術情報
文化・レクリエーション
生活・芸術
科学
プロフェッショナル
事業内容
ユーザー
すべて
新しい
人気
1
Денис Анненский
登録済み 1日前
2
365
登録済み 5日前
3
True Image
登録済み 6日前
4
archana agarwal
登録済み 1週間前
5
Maxim Zhilyaev
登録済み 1週間前
KO
RU
© de-vraag :年
ソース
stackoverflow.com
ライセンス cc by-sa 3.0 帰属