Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Espaço de nomes: Microsoft.Azure.Workflows.UnitTesting.Definitions
Essa classe cria uma instância simulada para uma ação em um fluxo de trabalho de aplicativo lógico padrão. A *ActionMock
classe fornece várias maneiras de criar ações fictícias para testar fluxos de trabalho padrão com saídas estáticas, condições de erro ou comportamento dinâmico com base no contexto de execução.
Utilização
// Simple mock action with success status
var successAction = new ActionMock(TestWorkflowStatus.Succeeded, "SendEmail");
// A mock action with specific outputs
var outputAction = new ActionMock(
TestWorkflowStatus.Succeeded,
"HttpRequest",
new MockOutput {
StatusCode = 200,
Headers = JToken.Parse(@"{""Content-Type"": ""application/json""}"),
Body = JToken.Parse(@"{""result"": ""success"", ""id"": 12345}")
});
// Failed action with error information
var failedAction = new ActionMock(
TestWorkflowStatus.Failed,
"DatabaseWrite",
new TestErrorInfo(
ErrorResponseCode.BadRequest,
"Database connection failed"
));
// Dynamic action that changes behavior based on execution context
var dynamicAction = new ActionMock(
(context) => {
var inputs = context.ActionContext.ActionInputs;
var amount = (int)inputs["amount"];
if (amount > 1000) {
return new ActionMock(TestWorkflowStatus.Failed, "PaymentProcessing",
new TestErrorInfo(ErrorResponseCode.BadRequest, "Amount exceeds limit"));
}
return new ActionMock(TestWorkflowStatus.Succeeded, "PaymentProcessing",
new MockOutput { Body = JToken.Parse(@"{""transactionId"": ""ABC123""}") });
},
"DynamicPaymentAction");
Construtores
Construtor com saídas estáticas
Cria uma ocorrência simulada para ActionMock
com saídas estáticas.
public ActionMock(TestWorkflowStatus status, string name = null, MockOutput outputs = null)
Nome | Descrição | Tipo | Obrigatório |
---|---|---|---|
Situação | O status do resultado da ação simulada. | TestWorkflowStatus | Sim |
nome | O nome da ação simulada. | corda | Não |
saídas | As saídas estáticas simuladas. | Saída Simulada | Não |
// Example: Create a mock action with successful status and static outputs
var outputs = new MockOutput {
Body = JToken.Parse(@"{""result"": ""Operation completed""}"),
StatusCode = 200
};
var actionMock = new ActionMock(TestWorkflowStatus.Succeeded, "ProcessData", outputs);
Construtor com informações de erro
Cria uma instância simulada para ActionMock
com informações de erro estático.
public ActionMock(TestWorkflowStatus status, string name = null, TestErrorInfo error = null)
Nome | Descrição | Tipo | Obrigatório |
---|---|---|---|
Situação | O status do resultado da ação simulada. | TestWorkflowStatus | Sim |
nome | O nome da ação simulada. | corda | Não |
erro | As informações de erro de ação simulada. | TestErrorInfo | Não |
// Example: Create an action mock with failed status and error information
var errorInfo = new TestErrorInfo(
ErrorResponseCode.InternalServerError,
"Service temporarily unavailable"
);
var actionMock = new ActionMock(TestWorkflowStatus.Failed, "ExternalAPICall", errorInfo);
Construtor com função de retorno de chamada
Cria uma instância simulada para ActionMock
com uma função de retorno de chamada para saídas dinâmicas.
public ActionMock(Func<TestExecutionContext, ActionMock> onGetActionMock, string name = null)
Nome | Descrição | Tipo | Obrigatório |
---|---|---|---|
onGetActionMock | A função de retorno de chamada para obter a ação simulada | Func<TestExecutionContext, ActionMock> | Sim |
nome | O nome da ação simulada | corda | Não |
// Example: Create a mock action with dynamic outputs based on execution context
var actionMock = new ActionMock(
(context) => {
var actionName = context.ActionContext.ActionName;
var inputs = context.ActionContext.ActionInputs;
// Determine outputs dynamically based on context
if (actionName == "ValidateUser" && inputs["userId"]?.Value<int>() > 0) {
return new ActionMock(
TestWorkflowStatus.Succeeded,
"ValidateUser",
new MockOutput { Body = JToken.Parse(@"{""isValid"": true}") }
);
}
return new ActionMock(TestWorkflowStatus.Failed, "ValidateUser");
},
"ConditionalValidation");
JSON construtor
Cria uma instância simulada para ActionMock
a partir de JSON.
internal ActionMock(TestWorkflowStatus status, string name = null, JToken outputs = null, TestErrorInfo error = null)
Nome | Descrição | Tipo | Obrigatório |
---|---|---|---|
Situação | O status do resultado da ação simulada. | TestWorkflowStatus | Sim |
nome | O nome da ação simulada. | corda | Não |
saídas | As saídas simuladas. | Saída Simulada | Não |
erro | O erro simulado. | TestErrorInfo | Não |
// Example: Create a mock action from JSON
var actionFromJson = JsonConvert.DeserializeObject<ActionMock>(File.ReadAllText(mockDataPath));
Propriedades
Esta classe herda as seguintes propriedades da OperationMock
classe base.
Nome | Descrição | Tipo | Obrigatório |
---|---|---|---|
Nome | Obtém ou define o nome para a operação simulada. | corda | Não |
Situação | Obtém ou define o status da operação. | TestWorkflowStatus | Não |
Saídas | Obtém ou define um valor que representa a saída estática no formato JSON. | JToken | Não |
Erro | Obtém ou define o erro de operação. | TestErrorInfo | Não |