Eleganckie szukanie rekordów dla current_user i testowanie

Hej,
zastanawiam się jak w sposób najbardziej elegancki sprawdzić w kontrollerze że użytkownik dostaje tylko własne rekordy:

[code=ruby]def index
current_user.orders
end

def show
current_user.orders.find(params[:id])
end[/code]
Jak napisać do tego zwięzłe testy, czy poprostu trzeba zacisnąć zęby i wstawiać shared examples do każdego kontekstu? Jak taki kod kod u was wygląda?
Na razie sprawdzam takie rzeczy w klasach logiki biznesowej, ale wolał bym ustawiać te rekorty w kontrollerach, a też robienie dodatkowej klasy typu OrderFetcher, OrdersFetcher jest dla mnie trochę uciążliwe…

Można użyć can cana i jego load_and_authorize_resource, ale na dłuższą metę mnie on wkurza. Trzeba rozważyć, gdzie opłaca się go wykorzystać, a gdzie to po prostu nie ma sensu.

Możesz spróbować wyjąć to do metody i wtedy testujesz tylko metodę na kontrolerze:

[code]def index
orders
end

def show
orders.find(params[:id])
end

private

def orders
current_user.orders
end[/code]
Ja często takie rzeczy i tak testuję używając rack::test albo pdobnego rozwiązania, bo wypływające dane są większym problemem niż wolne testy. No i tak jak już pisałem ostatnio, testy integracyjne można puścić jako część CI a u siebie puszczać tylko unitowe.