# Chaining expectations in Rspec

Generally, we think about expectations in RSpec one at a time. If the first expectation fails, then don’t go any further. Expectations in RSpec however are chainable, meaning, I can attach one expectation to another for the same subject and then know about the failures or successes for both expections, that looks like this.

`expect(1).to eq(2).and eq(3)`

Which produces output like this:

```
Failure/Error: expect(1).to eq(2).and eq(3)
expected: 2
got: 1
(compared using ==)
...and:
expected: 3
got: 1
(compared using ==)
```

The same result can be got from the below code which may appeal to you a bit more:

```
def chain_exp(*expects)
expects.inject {|exps, exp| exps.and(exp)}
end
expect(1).to chain_exp(eq(2), eq(3))
```