Freigeben über


TriggerMock-Klasse

Namespace: Microsoft.Azure.Workflows.UnitTesting.Definitions

Diese Klasse erstellt eine Pseudoinstanz für einen Trigger in einem Standardlogik-App-Workflow. Die TriggerMock Klasse bietet mehrere Möglichkeiten zum Erstellen von Pseudotriggern zum Testen von Standardworkflows mithilfe statischer Ausgaben, Fehlerbedingungen oder dynamischem Verhalten basierend auf dem Ausführungskontext.

Verwendung

// Simple trigger mock with success status
var successTrigger = new TriggerMock(TestWorkflowStatus.Succeeded, "HttpTrigger");

// Trigger mock with specific outputs
var outputTrigger = new TriggerMock(
    TestWorkflowStatus.Succeeded,
    "EmailTrigger",
    new MockOutput { 
        Body = JToken.Parse(@"{""subject"": ""Test Email"", ""from"": ""test@example.com""}") 
    });

// Failed trigger with error information
var failedTrigger = new TriggerMock(
    TestWorkflowStatus.Failed,
    "DatabaseTrigger",
    new TestErrorInfo(
        ErrorResponseCode.ConnectionError,
        "Failed to connect to database"
    ));

// Dynamic trigger that changes behavior based on execution context
var dynamicTrigger = new TriggerMock(
    (context) => {
        var actionName = context.ActionContext.ActionName;
        
        if (actionName == "ProcessOrder") {
            return new TriggerMock(
                TestWorkflowStatus.Succeeded, 
                "OrderTrigger",
                new MockOutput { Body = JToken.Parse(@"{""orderId"": 12345}") }
            );
        }
        
        return new TriggerMock(TestWorkflowStatus.Failed, "OrderTrigger");
    },
    "ContextAwareTrigger");

Erbauer

Konstruktor mit statischen Ausgaben

Erstellt eine Pseudoinstanz für TriggerMock statische Ausgaben.

public TriggerMock(TestWorkflowStatus status, string name = null, MockOutput outputs = null)
Name BESCHREIBUNG Typ Erforderlich
Status Der Pseudoauslöserergebnisstatus TestWorkflowStatus Ja
Name Der Pseudotriggername Schnur Nein
Ergebnisse Die simulierten statischen Ausgaben MockOutput Nein
// Example: Create a mock trigger with successful status and static outputs
var outputs = new MockOutput { 
    Body = JToken.Parse(@"{""webhookData"": ""sample payload""}")
};
var triggerMock = new TriggerMock(TestWorkflowStatus.Succeeded, "WebhookTrigger", outputs);

Konstruktor mit Fehlerinformationen

Erstellt eine Pseudoinstanz für TriggerMock statische Fehlerinformationen.

public TriggerMock(TestWorkflowStatus status, string name = null, TestErrorInfo error = null)
Name BESCHREIBUNG Typ Erforderlich
Status Der Pseudoauslöserergebnisstatus TestWorkflowStatus Ja
Name Der Pseudotriggername Schnur Nein
Fehler Die Pseudotriggerfehlerinformationen TestErrorInfo Nein
// Example: Create a mock trigger with failed status and error information
var errorInfo = new TestErrorInfo(
    ErrorResponseCode.Unauthorized,
    "Authentication failed for trigger"
);
var triggerMock = new TriggerMock(TestWorkflowStatus.Failed, "SecureTrigger", errorInfo);

Konstruktor mit Rückruffunktion

Erstellt eine Simulierte Instanz für TriggerMock eine Rückruffunktion für dynamische Ausgaben.

public TriggerMock(Func<TestExecutionContext, TriggerMock> onGetTriggerMock, string name = null)
Name BESCHREIBUNG Typ Erforderlich
onGetTriggerMock Die Rückruffunktion zum Abrufen des Pseudotriggers Func<TestExecutionContext, TriggerMock> Ja
Name Der Pseudotriggername Schnur Nein
// Example: Create a mock trigger with dynamic outputs based on execution context
var triggerMock = new TriggerMock(
    (context) => {
        var inputs = context.ActionContext.ActionInputs;
        var eventType = inputs["eventType"]?.Value<string>();
        
        // Return different mock based on event type
        if (eventType == "priority") {
            return new TriggerMock(
                TestWorkflowStatus.Succeeded, 
                "EventTrigger", 
                new MockOutput { Body = JToken.Parse(@"{""priority"": true}") }
            );
        }
        
        return new TriggerMock(TestWorkflowStatus.Succeeded, "EventTrigger");
    }, 
    "ConditionalEventTrigger");

JSON-Konstruktor

Erstellt eine Pseudoinstanz für TriggerMock JSON.

public TriggerMock(TestWorkflowStatus status, string name = null, JToken outputs = null, TestErrorInfo error = null)
Name BESCHREIBUNG Typ Erforderlich
Status Der Pseudoauslöserergebnisstatus TestWorkflowStatus Ja
Name Der Pseudotriggername Schnur Nein
Ergebnisse Die simulierten Ausgaben MockOutput Nein
Fehler Der Simulierte Fehler TestErrorInfo Nein
// Example: Create a mock trigger from JSON
var triggerFromJson = JsonConvert.DeserializeObject<TriggerMock>(File.ReadAllText(mockDataPath));

Eigenschaften

Name BESCHREIBUNG Typ Erforderlich
Name Der Name des Pseudovorgangs Schnur Nein
Der Status Der Vorgangsstatus TestWorkflowStatus Nein
Ausgaben Die statische Ausgabe im JSON-Format JToken Nein
Fehler Der Vorgangsfehler TestErrorInfo Nein