Bhim rav
Bhim rav

Reputation: 21

Rspec how to checks the value present in the an another method which that method doesn't return anything?

Hi i have written Rspec to validate a body of message\n

 describe "validate_msm" do

  let!(:user) { FactoryGirl.create(:user) }
  it "should contains welcome user" do 
    body = user.send_sms("909090990")
    expect(body).to include("welcome")
  end
end

as send_sms will call the send method which i have mentioned in let!

def send_sms

...

..

  body="welcome user"

  Message.send(contact, body)

end

so how to check with the body content is equal to welcome user , as send_sms doesn't return anything, so how to checks the value present in the body variable in rspec

Upvotes: 0

Views: 625

Answers (1)

BroiSatse
BroiSatse

Reputation: 44675

You don't. Or rather you don't that easily. Most of the libraries like this should come together with test adapters and helpers to make such testing possible. If this one does not, you can only test that the message has been sent with correct arguments:

it "should contains welcome user" do
  allow(Message).to receive(:send)
  
  user.send_sms("909090990")
  
  expect(Message).to have_received(:send) do |_contact, body|
    expect(body).to include "welcome"
  end
end

Upvotes: 2

Related Questions