我正在尝试测试具有以下定义的活动功能:
[FunctionName(nameof(LoadReferenceFromBlobStorage))]
public static async Task<string> Run([ActivityTrigger] string blobName,
IBinder binder,
ILogger log)
{
StorageAccountAttribute storageAccountAtt = new StorageAccountAttribute("AzureWebJobsStorage");
CloudStorageAccount storageAccount = await binder.BindAsync<CloudStorageAccount>(storageAccountAtt, CancellationToken.None);
CloudBlobClient client = storageAccount.CreateCloudBlobClient();
//...
}
IBinder
我将单元测试中的模拟为:
[TestMethod]
public async Task GetReference()
{
var attribute = new StorageAccountAttribute("UseDevelopmentStorage=true;");
var mock = new Mock<IBinder>();
CloudStorageAccount mockedResult = null;
CloudStorageAccount.TryParse("UseDevelopmentStorage=true;", out mockedResult);
mock.Setup(x => x.BindAsync<CloudStorageAccount>(attribute, CancellationToken.None))
.ReturnsAsync(mockedResult);
ILogger logger = NullLoggerFactory.Instance.CreateLogger("log");
var res = await LoadReferenceFromBlobStorage.Run("name", mock.Object, logger);
//...
}
测试成功调用活动,但结果binder.BindAsync
始终为null。
我错过了什么吗?