Jan Krutisch wrote:
> - private Methoden in funktionalen Tests abtesten zu wollen ist ein
> Code Smell. Funktionale Tests sollten (so sehe ich das) den Controller
> "von aussen" testen. Es sind eben KEINE Unit-Tests. Du m�sstest also
> eher die Actions, die diese Methode verwenden auf ihre richtige
> Funktion testen.

Ja, du hast natürlich recht. Ich wollte mit dem Test erst einmal 
"kleinteilig" die korrekte Funktion bzw. korrekten Rückgabewert testen. 
Da der Kram aber eh ins Model gehört, kann das ja über Unit Tests 
erledigt werden.

Wie gesagt, ich beschäftige mich erst frisch mit Test und Rails 
überhaupt. Im Moment muss ich auch erst noch herausfinden wie fein das 
Testnetz geschrieben werden sollte, damit es a) nicht unnötig viele 
werden und b) Sachen ungetestet bleiben und sich so doch Fehler 
einschleichen können. So eine richtig gute Abhandlung die die 
Testgetriebene Entwicklung in allen Bereichen behandelt (und auch das 
Zusammenspiel), habe ich leider noch nicht gefunden.

> - Das ganze riecht allerdings danach als w�re die Methode
> grunds�tzlich im Controller falsch aufgehoben, da es sich vermutlich
> um Dom�nen-Logik (klingt furchtbar auf deutsch, finde ich) handelt,
> die �blicherweise ins Modell geh�rt. Wenn ich Deinen Code richtig aus
> Deinen Schnippseln extrapoliere klingt das alles danach als w�rdest Du
> eigentlich auf Deinem Modell ein virtuelles Attribute "geocode"
> anlegen wollen, was genau das macht, was bei Dir die Methode macht.

Ich dachte mir schon, das die Mehode im Controller nicht wirklich gut 
aufgehoben ist. Es geht mir in der Methode grundsätzlich darum, weitere 
Parameter zu einer Ortsangabe zu erhalten. In diesem Fall also aus 
Geokoordinaten, möchte ich den Ort erhalten, um diesen in einem View 
auszugeben.

Einfach die geschriebene Methode

  def get_geocode(address)
    g = MultiGeocoder.geocode(address)
    return {:success => true, :lat => g.lat, :lng => g.lng, :city => 
g.city }
  end

in das Model zu packen funktioniert ja (wohl) nicht. Zumindest bekomme 
ich es so nicht vom Controller aus angesprochen (Hotspot.get_geocode) -> 
NoMethodError: undefined method `get_geocode' for #<Class:0x243b438>


Grüße,
Christian
-- 
Posted via http://www.ruby-forum.com/.
_______________________________________________
rubyonrails-ug mailing list
[email protected]
http://mailman.headflash.com/listinfo/rubyonrails-ug

Antwort per Email an