gpt4 book ai didi

c# - C#中的单元测试工厂类

转载 作者:太空宇宙 更新时间:2023-11-03 12:31:02 25 4
gpt4 key购买 nike

我有需要使用用户名密码进行身份验证的第三方 api 包装器类,所以我将初始化设置放在 Factory 类中,例如

public class ApiClientFactory
{
private ApiClient apiClient;


publi ApiClient GetApiClient()
{
try
{
String apiURL = ConfigurationManager.AppSettings["API_URL"];
apiClient = new ApiClient(apiURL);

// Auth to the API to get our JWT token for subsequent requests.
AuthResponse response = apiClient.Authenticate(new AuthRequest()
{
Type = UserType.Staff,
Username = ConfigurationManager.AppSettings["API_UserName"],
Password = ConfigurationManager.AppSettings["API_Password"]
});

if (response != null)
{
//save the token for all subsequent requests
apiClient.JwtToken = response.Token;
response = null;
}
else
{
log.Error("APIClient Could not authenticate.");
}

return apiClient;
}
catch (Exception ex)
{
throw ex;
}
}
}

public static void Main()
{
try
{
ApiClientFactory clientFactory = new ApiClientFactory();
apiClient = clientFactory.GetApiClient();

}
catch (Exception ex)
{
log.Error(ex.Message);
return;
}

// use apiClient to call api method

}

如何对 ApiClientFactory 类的 GetApiClient 进行单元测试。

最佳答案

由于工厂直接实例化了一个ApiClient,所以你无法用模拟替换ApiClient,所以你不能在没有实际发出请求的情况下测试工厂到服务器。您的工厂不应该执行身份验证,它应该只创建对象并返回它。

关于c# - C#中的单元测试工厂类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42772447/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com