Бөлісу құралы:


Класс TriggerMock

Пространство имен: Microsoft.Azure.Workflows.UnitTesting.Definitions

Этот класс создает экземпляр макета для триггера в рабочем процессе приложения логики "Стандартный". Класс TriggerMock предоставляет несколько способов создания макетных триггеров для тестирования стандартных рабочих процессов с помощью статических выходных данных, условий ошибок или динамического поведения на основе контекста выполнения.

Использование

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

Конструкторы

Конструктор со статическими выходными данными

Создает экземпляр макета для TriggerMock статических выходных данных.

public TriggerMock(TestWorkflowStatus status, string name = null, MockOutput outputs = null)
Имя Описание Тип Обязательно
статус Состояние результата триггера макета TestWorkflowStatus Да
имя Имя триггера макета струна нет
выходные данные Макет статических выходных данных MockOutput нет
// 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);

Конструктор с сведениями об ошибке

Создает экземпляр макета для TriggerMock со статическими сведениями об ошибках.

public TriggerMock(TestWorkflowStatus status, string name = null, TestErrorInfo error = null)
Имя Описание Тип Обязательно
статус Состояние результата триггера макета TestWorkflowStatus Да
имя Имя триггера макета струна нет
ошибка Сведения об ошибке триггера макета TestErrorInfo нет
// 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);

Конструктор с функцией обратного вызова

Создает экземпляр макета для TriggerMock функции обратного вызова для динамических выходных данных.

public TriggerMock(Func<TestExecutionContext, TriggerMock> onGetTriggerMock, string name = null)
Имя Описание Тип Обязательно
onGetTriggerMock Функция обратного вызова для получения триггера макета Func<TestExecutionContext, TriggerMock> Да
имя Имя триггера макета струна нет
// 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

Создает макет экземпляра из TriggerMock JSON.

public TriggerMock(TestWorkflowStatus status, string name = null, JToken outputs = null, TestErrorInfo error = null)
Имя Описание Тип Обязательно
статус Состояние результата триггера макета TestWorkflowStatus Да
имя Имя триггера макета струна нет
выходные данные Макет выходных данных MockOutput нет
ошибка Ошибка макета TestErrorInfo нет
// Example: Create a mock trigger from JSON
var triggerFromJson = JsonConvert.DeserializeObject<TriggerMock>(File.ReadAllText(mockDataPath));

Свойства

Имя Описание Тип Обязательно
Имя Имя операции макета струна нет
Состояние Состояние операции TestWorkflowStatus нет
Выходы Статические выходные данные в формате JSON JToken нет
Ошибка Ошибка операции TestErrorInfo нет