Я пытаюсь написать модульный тест для устойчивой функции. В это время я столкнулся с проблемой насмешки над DurableTaskClient. Я получаю сообщение об ошибке в настройке макетирования ScheduleNewOrchestrationInstanceAsync.
Вот код модульного теста:
Код: Выделить всё
public async Task HttpStart_ValidRequest_ReturnsSuccessResponse()
{
// Arrange
// Define constants
const string functionName = "SampleFunction";
const string instanceId = "7E467BDB-213F-407A-B86A-1954053D3C24";
var loggerMock = new Mock();
var optionsMock = new Mock();
var commonServiceMock = new Mock();
var ServiceMock = new Mock();
var requestMock = new Mock();
var requestBody = @"{""Id"":""123""}";
requestMock.Setup(req => req.Body).Returns(new MemoryStream(Encoding.UTF8.GetBytes(requestBody)));
var durableClientMock = new Mock();
durableClientMock.Setup(x => x.ScheduleNewOrchestrationInstanceAsync(functionName It.IsAny())).
ReturnsAsync(instanceId);
durableClientMock.Setup(client => client.ScheduleNewOrchestrationInstanceAsync(It.IsAny(), requestMock.Object))
.ReturnsAsync("instanceId123");
var functionContextMock = new Mock();
functionContextMock.Setup(ctx => ctx.GetLogger(It.IsAny())).Returns(loggerMock.Object);
var buildTemplate = new BuildTemplate(optionsMock.Object, commonServiceMock.Object, ServiceMock.Object);
// Act
var response = await buildTemplate.HttpStart(requestMock.Object, durableClientMock.Object, functionContextMock.Object);
// Assert
Assert.IsNotNull(response);
Assert.AreEqual(202, response.StatusCode);
}
Код: Выделить всё
durableClientMock.Setup(x => x.ScheduleNewOrchestrationInstanceAsync(functionName It.IsAny())).
ReturnsAsync(instanceId);
durableClientMock.Setup(client => client.ScheduleNewOrchestrationInstanceAsync(It.IsAny(), requestMock.Object))
.ReturnsAsync("instanceId123");

Источник: https://stackoverflow.com/questions/781 ... hedulenewo
Мобильная версия