1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
|
RSpec.describe RSpec::Parameterized::TableSyntax do
describe "table separated with pipe (using TableSyntax)" do
using RSpec::Parameterized::TableSyntax
where(:a, :b, :answer) do
1 | 2 | 3
"hello " | "world" | "hello world"
[1, 2, 3] | [4, 5, 6] | [1, 2, 3, 4, 5, 6]
end
with_them do
it "a plus b is answer" do
expect(a + b).to eq answer
end
end
end
describe "table separated with pipe and lambda parameter (using TableSyntax)" do
using RSpec::Parameterized::TableSyntax
where(:a, :b, :matcher) do
1 | 2 | -> { eq(3) }
"hello " | "world" | -> { eq("hello world") }
[1, 2, 3] | [4, 5, 6] | -> { be_a(Array) }
end
with_them do
it "a plus b is answer" do
expect(a + b).to instance_exec(&matcher)
end
end
end
context "when the table has only a row (using TableSyntax)" do
using RSpec::Parameterized::TableSyntax
where(:a, :b, :answer) do
1 | 2 | 3
end
with_them do
it "a plus b is answer" do
expect(a + b).to eq answer
end
end
end
context "when 1st column is nil or true or false" do
using RSpec::Parameterized::TableSyntax
where(:a, :result) do
nil | nil
false | false
true | true
end
with_them do
it "a is result" do
expect(a).to be result
end
end
end
context "when the where has let variables, defined by parent example group" do
describe "parent (define let)" do
let(:five) { 5 }
let(:eight) { 8 }
describe "child 3 (Using TableSyntax)" do
using RSpec::Parameterized::TableSyntax
where(:a, :b, :answer) do
1 | 2 | 3
five | eight | 13
end
with_them do
it "a plus b is answer" do
expect(a + b).to eq answer
end
end
end
end
end
end
|