Hiermit kann die Ausführung eines Modulaufrufs für eine bestimmte Operation simuliert werden.
Das „Mocken“ einer Operation ist ausschließlich in aktiven Unit-Tests gestattet.
Die Methode RegisterMockup
registriert für die übergebene Operation eine Funktion, welche an deren Stelle aufgerufen werden soll. Die Ausführung ist ausschließlich in einem aktiven Unit-Test gestattet.
Es ist nicht möglich, mehrere Mockups gleichzeitig für die gleiche Operation zu registrieren.
public bool RegisterMockup<T, TR>(T call, Func<T, TR> mockupFunc) where T : ModuleCallOperation<ModuleCallSub, TR> where TR : IConvertible public bool RegisterMockup<T, TR>(Func<T, TR> mockupFunc) where T : ModuleCallOperation<ModuleCallSub, TR> where TR : IConvertible public bool RegisterMockup<T, TR>(T call, TR state) where T : ModuleCallOperation<ModuleCallSub, TR> where TR : IConvertible public bool RegisterMockup<T, TR>(TR state) where T : ModuleCallOperation<ModuleCallSub, TR> where TR : IConvertible
call ist eine Instanz der zu simulierenden Operation.
mockupFunc ist eine Funktion mit dem Rückkehrwert StateEnum
, sowie dem Parameter vom Typ der zu mockenden Operation.
state ist ein StateEnum
des Moduls, das die zu simulierende Operation enthält.
liefert true
, wenn die Registrierung erfolgreich war, ansonsten false
.
private StateEnum MokedCallOK(Lesen_Call call); private void Test_prepare() { this.Test.RegisterMockup(this.Call.Tbservice.Lesen, MokedCallOK); } [ModuleUnitTest(task: "T1", caption: "Durchführen", description: "Lesen Ok")] private void Test(){ var newList = this.Data.NewList(DzugStrukturSnpme.Type); var item = newList.Add(); item._000AenK = "B"; item._000ZgrErg = "B"; var lesencal = this.Call.Tbservice.Lesen lesencal.AssignArgumentsWithNewObjects(); OperationDurchfuehren(newList, lesencal); } private void Test_cleanup() { this.Test.UnregisterMockup(this.Call.Tbservice.Lesen); }
Die Ausführen außerhalb eines aktiven Unit-Tests, das Setzen ohne Wert, sowie das Setzen bei schon vorhandenem Mockup führen zu einer Condition.
Die Methode UnregisterMockup
entfernt für die übergebene Operation eine ggf. angegebene Mocking-Funktion. Die Ausführung ist ausschließlich in einem aktiven Unit-Test gestattet.
public bool UnregisterMockup<T, TR>(T call) where T : ModuleCallOperation<ModuleCallSub, TR> where TR : IConvertible public bool UnregisterMockup<T>() where T : ModuleCallOperation
call ist eine Instanz der zu simulierenden Operation.
liefert true
, wenn die Registrierung erfolgreich war, ansonsten false
.
private StateEnum MockedCallNichtOK(Lesen_Call call); private void Test_prepare() { this.Test.RegisterMockup(this.Call.Tbservice.Lesen, MockedCallNichtOK); } [ModuleUnitTest(task: "T1", caption: "Durchführen", description: "Lesen Nicht Ok")] private void Test(){ var newList = this.Data.NewList(DzugStrukturSnpme.Type); var item = newList.Add(); item._000AenK = "B"; item._000ZgrErg = "B"; var lesencal = this.Call.Tbservice.Lesen lesencal.AssignArgumentsWithNewObjects(); OperationDurchfuehren(newList, lesencal); } private void Test_cleanup() { this.Test.UnregisterMockup(this.Call.Tbservice.Lesen); }
Das Ausführen außerhalb eines aktiven Unit-Tests, das Aufrufen ohne gültigen Parameter, sowie das Unregistrieren ohne vorhandenen Mockup führen zu einer Condition.