Skip to content

Instantly share code, notes, and snippets.

@tanhit243
Created April 3, 2023 05:05
Show Gist options
  • Save tanhit243/1e0585c913712993ff4224dfd1c50f1d to your computer and use it in GitHub Desktop.
Save tanhit243/1e0585c913712993ff4224dfd1c50f1d to your computer and use it in GitHub Desktop.
With in rspec
:info_neon: Chuyên mục MIL - Monday I learn - 011
Cách sử dụng `with` cùng với `allow` và `allow_any_instance_of`.
Dạng allow(A).to receive(:method).and_return some_thing
Có ý nghĩa: Khi gọi method với bất kì tham số nào thì sẽ trả về some_thing
Dạng allow(A).to receive(:method).with(:some_params).and_return some_thing
Có ý nghĩa: Khi gọi method với param cụ thể :some_params thì sẽ trả về some_thing
Nếu truyền sai tham số thì sẽ bị raise lỗi.
`Please stub a default value first if message might be received with other args as well.`
Chúng ta có thể allow và with nhiều lần trong test case.
allow(A).to receive(:method).with(:some_params).and_return some_thing
allow(A).to receive(:method).with(:some_params1).and_return some_thing1
Với mỗi tham số thì method sẽ trả về giá trị tương ứng.
Một ứng dụng của tính năng này đang được sử dụng trong phần rspec obic. Với mỗi câu query thì sẽ trả về gía trị tương ứng từ OBIC.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment