Ich bin neu in Unit Testing und Mocking. Ich versuche, Unit-Test eine abstrakte Domain-Klasse in Grails. Wie sollte ich eine Implementierung mocken, so dass ich die Einschränkungen der Domänenklasse testen kann? Gibt es eine Möglichkeit, die Mock-Bibliotheken zu verwenden, die mit Groovy oder Grails kommen? Sollte ich einfach eine Klasse implementieren, die einfach die abstrakte Klasse erweitert?
Antwort
Zu viele Anzeigen?Eine coole Sache über Groovy (unter vielen) ist, dass Sie eine Karte von Methodennamen mit Schließungen als Werte verwenden können, um eine Klasse zu mock out. Dies schließt abstrakte Klassen ein.
abstract class Foo {
def foo() {
return bar() + 1
}
abstract int bar()
}
def fooInst = [bar: {-> return 1 }] as Foo
assert 2 == fooInst.foo()