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 MockedCallOK(Lesen_Call call); private void Test_prepare() { this.Test.RegisterMockup(this.Call.Tbservice.Lesen, MockedCallOK); } [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.