| 

.NET C# Java Javascript Exception

Maps als Mocks für Beans mit (Bean) Properties

Dies ist das Archiv des ehemaligen Forums zum Thema Groovy, Grails, Griffon und Bean Scripting Framework, welches unter groovy-forum.de existierte. Die neue Adresse des Groovy-Forums ist: http://codekicker.de/fragen/themen/groovy.


Maps als Mocks für Beans mit (Bean) Properties

jgottschling - 08.03.2008 21:45
Schreibe gerade ine paar Tests in Groovy und möchte Maps oder ein Expando als Mock benutzen. (Sonst nutze ich EasyMock aber darauf möchte ich gezielt verzichten.)

Ich möchte einen Mock für folgendes Interface erstellen:

// Java
public interface Product
{
  Double getBasePrice();
}

Ich teste zwar Groovy Code dieser implementiert aber ein Java Interface, somit kann ich kein "duck typing" benutzen. Damit schlägt leider das Expando fehl:
 def product = new Expando(basePrice : 120.0) as Product
Das Problem ist dass der Operator as leider nicht so dynamisch ist, wie bei Maps. Also nutzen wir diese:
 def product = [basePrice : 120.0] as Product
Funktioniert auch nicht! Denn der Proxy der mit dem as Operator erzeugt wird, sucht beim Aufruf von "getBasePrice()" nach der entsprechenden Methode und kommt nicht auf die Idee einfach das Property zurück zu liefern. :-(

Deshalb funtioniert erst folgendes:
 def product = [getBasePrice() : {120.0}] as Product

Grmpf! Das ist ziemlich unschön. Kennt jemand was besseres?

Ach ja, Closures als Mocks gehen hier auch, sind aber noch häßlicher:
 def product = {120.0} as Product

Hat jemand ne Idee, wie das schöner geht?


Stelle deine Groovy-Frage jetzt!


Diese Seite zeigt den Thread "Maps als Mocks für Beans mit (Bean) Properties" der ehemaligen Webseite groovy-forum.de, welche durch einen Serverunfall zerstört wurde. codekicker.de hat viele Konversationen über die beliebte Programmiersprache Groovy und zugehörige Frameworks wie das Grails-Framework retten können.

Hast Du eine Frage zum Thema Groovy, Grails oder allgemein Java? Viele ehemalige groovy-forum.de Mitglieder beantworten dir auf codekicker.de deine Frage! Stelle jetzt eine Frage!

Viele weitere Diskussionen zu Grails und Groovy befinden sich auf der Threadübersicht des alten groovy-forum.de.