【发布时间】:2019-03-19 01:04:11
【问题描述】:
我写了一个 azure 函数 v1 HttpTrigger 从我们的 api 服务获取客户端详细信息和事务,只有一个参数“频率”也是可选的,所以当函数被触发时,它将获取详细信息然后获取事务对于每个零售商的详细信息并返回每个零售商的交易费用列表,我想为我的功能编写一个单元测试,但我看不到我的场景的一个很好的例子,有人可以给我一个示例单元测试(带起订量如果可能),这里是函数代码库示例:
[FunctionName("FunctionTest1")]
public static async Task<HttpResponseMessage>
Run([HttpTrigger(AuthorizationLevel.Function)]HttpRequestMessage req, ILogger log) {
log.LogInformation("C# HTTP trigger function processed a request.");
#region Properties
string Frequency = req.GetQueryNameValuePairs().FirstOrDefault(q => string.Compare(q.Key, "frequency", true) == 0).Value;
#endregion
log.LogInformation("Getting client details from MongoDB");
Process of Getting ClientDetails
log.LogInformation("Get and compute Transaction Fee foreach retailers from client details");
Process of Getting And Computing Transactions for each retailers (NOTE Took too much time)
log.LogInformation("Return results response");
return txnList == null
? new HttpResponseMessage(HttpStatusCode.InternalServerError) {
Content = new StringContent(JsonConvert.SerializeObject("Error getting data from server"), Encoding.UTF8, "application/json")
} : new HttpResponseMessage(HttpStatusCode.OK) {
Content = new StringContent(JsonConvert.SerializeObject(txnList, Newtonsoft.Json.Formatting.Indented), Encoding.UTF8, "application/json")
};
}
我试过的单元测试参考:https://docs.microsoft.com/en-us/azure/azure-functions/functions-test-a-function
https://medium.com/@tsuyoshiushio/writing-unit-test-for-azure-durable-functions-80f2af07c65e
我尝试了什么:
[TestMethod]
public async Task Response_Should_Not_Null()
{
var request = new HttpRequestMessage();
var logger = Mock.Of<ILogger>();
var response = await FunctionTest1.Run(request, logger).ConfigureAwait(false);
Assert.IsNotNull(response);
}
我遇到的错误:
线程 0x5580 已退出,代码为 0 (0x0)。
程序“[23748] dotnet.exe”已退出,代码为 0 (0x0)。
程序“[23748] dotnet.exe: Program Trace”已退出,代码为 0 (0x0)。
问候,
妮可
【问题讨论】:
标签: c# unit-testing azure-functions mstest