Udostępnij za pośrednictwem


Klasa TriggerMock

Przestrzeń nazw: Microsoft.Azure.Workflows.UnitTesting.Definitions

Ta klasa tworzy pozorne wystąpienie wyzwalacza w przepływie pracy standardowej aplikacji logiki. Klasa TriggerMock udostępnia wiele sposobów tworzenia pozornych wyzwalaczy na potrzeby testowania standardowych przepływów pracy przy użyciu statycznych danych wyjściowych, warunków błędów lub dynamicznego zachowania na podstawie kontekstu wykonywania.

Zastosowanie

// 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");

Konstruktory

Konstruktor ze statycznymi danymi wyjściowymi

Tworzy pozorne wystąpienie dla elementu TriggerMock z danymi wyjściowymi statycznymi.

public TriggerMock(TestWorkflowStatus status, string name = null, MockOutput outputs = null)
Nazwa Opis Typ Wymagane
stan Stan wyniku makiety wyzwalacza TestWorkflowStatus Tak
nazwa Nazwa makiety wyzwalacza sznurek Nie.
Wyniki Pozorne dane wyjściowe statyczne MockOutput Nie.
// 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 z informacjami o błędzie

Tworzy pozorne wystąpienie programu z TriggerMock informacjami o błędzie statycznym.

public TriggerMock(TestWorkflowStatus status, string name = null, TestErrorInfo error = null)
Nazwa Opis Typ Wymagane
stan Stan wyniku makiety wyzwalacza TestWorkflowStatus Tak
nazwa Nazwa makiety wyzwalacza sznurek Nie.
błąd Informacje o błędzie wyzwalacza pozoru TestErrorInfo Nie.
// 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 z funkcją wywołania zwrotnego

Tworzy pozorne wystąpienie funkcji TriggerMock wywołania zwrotnego dla dynamicznych danych wyjściowych.

public TriggerMock(Func<TestExecutionContext, TriggerMock> onGetTriggerMock, string name = null)
Nazwa Opis Typ Wymagane
onGetTriggerMock Funkcja wywołania zwrotnego umożliwiająca uzyskanie pozornego wyzwalacza Func<TestExecutionContext, TriggerMock> Tak
nazwa Nazwa makiety wyzwalacza sznurek Nie.
// 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");

Konstruktor JSON

Tworzy pozorne wystąpienie dla z TriggerMock formatu JSON.

public TriggerMock(TestWorkflowStatus status, string name = null, JToken outputs = null, TestErrorInfo error = null)
Nazwa Opis Typ Wymagane
stan Stan wyniku makiety wyzwalacza TestWorkflowStatus Tak
nazwa Nazwa makiety wyzwalacza sznurek Nie.
Wyniki Pozorne dane wyjściowe MockOutput Nie.
błąd Błąd pozorny TestErrorInfo Nie.
// Example: Create a mock trigger from JSON
var triggerFromJson = JsonConvert.DeserializeObject<TriggerMock>(File.ReadAllText(mockDataPath));

Właściwości

Nazwa Opis Typ Wymagane
Nazwa Nazwa makiety operacji sznurek Nie.
Stan Stan operacji TestWorkflowStatus Nie.
Wyniki Dane wyjściowe statyczne w formacie JSON JToken Nie.
Błąd Błąd operacji TestErrorInfo Nie.