Ich verwende Traits, um meine Controller DRY zu machen. Ich möchte die Trait-Klasse mit Spock testen. Hier ist meine Probe Zu und Spock Testfall jeweils:Wie schreibe ich einen Spock-Unit-Testfall für Merkmale in Grallen 2.4?
trait SomeTrait {
public void checkSomething (Closure c){
// Do some operation
c.call
}
}
@TestMixin(GrailsUnitTestMixin)
class SomeTraitSpec extends Specification {
void "test checkSomething "(){
setup:
MockedClass mockedObj = new MockedClass()
def x=0
def c = {
x=1
}
when:
mockedObj.checkSomething(c)
then:
assert x==1
}
}
class MockedClass implements PermissionTrait {
// some thing
}
Da Merkmal eine Schnittstelle ist, habe ich eine Mocked Klasse in meinem Testfall, der die Trait implementiert, erstelle ich ein Objekt dieser Mocked Klasse und rufen Sie meine Trait-Methode, die ich testen möchte. Ist das die richtige Herangehensweise, wenn nicht, bitte mit einem geeigneten Beispiel in die richtige Richtung zeigen.
Hat jemand eine solche Situation erlebt? –