小编Ami*_*ran的帖子

使用Moq模拟HttpClient

我喜欢对使用的类进行单元测试HttpClient.我们HttpClient在类构造函数中注入了对象.

public class ClassA : IClassA
{
    private readonly HttpClient _httpClient;

    public ClassA(HttpClient httpClient)
    {
        _httpClient = httpClient;
    }

    public async Task<HttpResponseMessage> SendRequest(SomeObject someObject)
    {
        //Do some stuff

        var request = new HttpRequestMessage(HttpMethod.Post, "http://some-domain.in");

        //Build the request

        var response = await _httpClient.SendAsync(request);

        return response;
    }
}
Run Code Online (Sandbox Code Playgroud)

现在我们喜欢对ClassA.SendRequest方法进行单元测试.我们正在使用Ms Test单元测试框架和Moq模拟.

当我们试图嘲笑它时HttpClient,它会抛出NotSupportedException.

[TestMethod]
public async Task SendRequestAsync_Test()
{
    var mockHttpClient = new Mock<HttpClient>();

    mockHttpClient.Setup(
        m => m.SendAsync(It.IsAny<HttpRequestMessage>()))
    .Returns(() => …
Run Code Online (Sandbox Code Playgroud)

c# unit-testing mstest moq dotnet-httpclient

7
推荐指数
4
解决办法
9051
查看次数

使用没有 json 文件的 Google 应用程序默认凭据

我使用 c# 创建了一个控制台应用程序。我使用了谷歌云语音 api。我按照这个示例应用程序来创建应用程序。为了验证语音 api,我在 main 方法中编写了以下代码

Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", "path-to-json-file", EnvironmentVariableTarget.Process);
Run Code Online (Sandbox Code Playgroud)

一切正常。我的问题,我必须将 exe 与 json 文件一起发送。我不想公开 json 文件。如何在代码中嵌入 json 文件内容或在没有 json 文件的情况下进行身份验证?这样我只能将exe发送给用户。

对此的任何帮助将不胜感激。

谢谢。

google-speech-api google-cloud-speech

5
推荐指数
1
解决办法
1326
查看次数