Inhaltsverzeichnis

Mocking von Operationen

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.

RegisterMockup

Definition

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

Parameter

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.

Rückkehrwert

liefert true, wenn die Registrierung erfolgreich war, ansonsten false.

Beispiel:

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);
}

Bemerkung

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.

UnregisterMockup

Definition

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

Parameters

call ist eine Instanz der zu simulierenden Operation.

Rückkehrwert

liefert true, wenn die Registrierung erfolgreich war, ansonsten false.

Beispiel:

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);
}

Bemerkung

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.