小编use*_*038的帖子

sinon.stub()vs sinon.sandbox.stub()?

在我们的前端单元测试中使用sinonsinon-qunit,我很难理解这些方法的不同之处.我们正在使用sinon.sandbox.stub()(字面意思是功能,我们不创建沙箱),这些存根显然在每次测试后自动恢复.我只是在文档中的任何地方都看不到这一点.

我不认为这种方法存在,我认为你需要使用显式创建沙箱sinon.sandbox.create().在那个沙箱对象上你会调用存根函数i.e. mySandbox.stub(),而不是"sinon.sandbox.stub()".

谁能帮我理解?

javascript unit-testing qunit sinon

7
推荐指数
1
解决办法
4752
查看次数

HttpClient(C#)在许多异步请求上失败了吗?

我正在使用HttpClient异步向外部api发出许多请求.我等待所有请求完成,然后在其他代码中使用响应.我的问题是,如果我发出太多请求,当我使用Task.WhenAll等待时,我的代码会引发异常.

这段代码最终将并行运行,我的意思是我将同时执行多组这些异步请求(即10组200个异步请求).我已经实例化了一个HttpClient,我正在使用.NET 4.5异步/等待修饰符,如下所示:

using (var client = new HttpClient())
{
    // make a list of tasks
    List<Task<HttpResponseMessage>> taskList;
    List<MyData> replies;
    for (int i = 0; i < MAX_NUMBER_REQUESTS; i++)
    {
        taskList.Add(client.GetAsync(externalUri);
    }

    List<HttpResponseMessage> responses = await Task.WhenAll(taskList);

    // read each response after they have returned
    foreach (var response in responses)
    {
        var reader = new System.IO.StreamReader(await response.Content.ReadAsStreamAsync());
        replies.Add(JsonConvert.DeserializeObject<MyData>(reader.ReadToEnd()));
        reader.Close();
} 

    foreach (var reply in replies)
    {
        // do something with the response from the external api call...
    }
}
Run Code Online (Sandbox Code Playgroud)

我一直得到一个TaskCanceledException.在调查之后,我看到这可能是一个超时问题.我不知道如何解决它.在尝试使用Task.WhenAll并重复之前,我试图在100个请求中批量处理我的请求.然后,当我与三组100个请求失败并行运行时.我错过了什么,有没有人对此有任何见解?

c# asynchronous async-await .net-4.5 dotnet-httpclient

3
推荐指数
1
解决办法
4950
查看次数