Conversation
|
|
||
| consume_rate = 10 | ||
| @building.warriors.each do |warrior| | ||
| consume_rate += if warrior.type == 'Warriors::Hussar' |
There was a problem hiding this comment.
Ładniej by to chyba wyglądało, jeśli Warrior miałby zaimplementowaną metodę/atrybut np. supply_burn_rate, który zwraca 1 jeśli warrior nie ma konia i 2 jeśli go ma, wtedy nie trzeba by myśleć nad takimi ifami w tym serwisie :)
|
|
||
| def call | ||
| raise NotImprementedYet | ||
| return 0 if @building.warriors.all.empty? |
There was a problem hiding this comment.
To sprawdzenie spokojnie by się mogło znaleźć gdzieś wyżej, żeby nie obciążać logiki serwisu :) Serwis najlepiej jeśli ma jedną odpowiedzialność, a Twój serwis poza liczeniem ile dni przetrwa dany budynek, stwierdza upadłość budynku jeśli nie ma w nim wojowników :)
| factory :warrior, class: 'Warrior' do | ||
| association(:building) | ||
| association(:clan) | ||
| name { 'default' } |
There was a problem hiding this comment.
Tu powinienes zastosowac onstrukcje w tym stylu zeby fabryka byla dobra, bo z tego co pamietam warrior ma unikalne imie wsrod tych zyjacych :)
sequence :email do |n|
"person#{n}@example.com"
end| let(:building_granary) { 100 } | ||
|
|
||
| it 'responds with 200' do | ||
| get "/buildings/#{building.id}" |
There was a problem hiding this comment.
W tym describe, tego get mozna bylo wyneisc do before
No description provided.