Вы возвращаете его как массив:
allow(Open3).to receive(:capture2).and_return(["wat?", status])
, чтобы вы могли визуализировать код как выполняющийся (со значением «200» для статуса):
stdout, status = ["wat", "200"]
stdout #=> "wat"
status #=> "200"
Вот так работает множественное назначение в ruby - метод может возвращать только одно значение, но если это массив, то вы можете использовать множественное присваивание.