你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

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)
名称 DESCRIPTION 类型 必选
地位 模拟触发器结果状态 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)
名称 DESCRIPTION 类型 必选
地位 模拟触发器结果状态 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)
名称 DESCRIPTION 类型 必选
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 构造函数

从 JSON 创建模拟实例 TriggerMock

public TriggerMock(TestWorkflowStatus status, string name = null, JToken outputs = null, TestErrorInfo error = null)
名称 DESCRIPTION 类型 必选
地位 模拟触发器结果状态 TestWorkflowStatus 是的
姓名 模拟触发器名称 字符串
输出 模拟输出 MockOutput
错误 模拟错误 TestErrorInfo
// Example: Create a mock trigger from JSON
var triggerFromJson = JsonConvert.DeserializeObject<TriggerMock>(File.ReadAllText(mockDataPath));

性能

名称 DESCRIPTION 类型 必选
名称 模拟作的名称 字符串
状态 作状态 TestWorkflowStatus
输出 JSON 格式的静态输出 JToken
错误 作错误 TestErrorInfo