1 Star 0 Fork 1.5K

codingstudio/BootstrapAdmin

加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
BAWebHost.cs 2.37 KB
一键复制 编辑 原始数据 按行查看 历史
Argo 提交于 2020-02-12 21:56 +08:00 . !67 单元测试:重构单元测试
using Longbow.Web.SMS;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc.Testing;
using Microsoft.AspNetCore.Mvc.Testing.Handlers;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using System;
using System.IO;
using System.Net;
using System.Net.Http;
using Xunit;
namespace Bootstrap.Admin
{
/// <summary>
/// 未登录
/// </summary>
[CollectionDefinition("BA-Logout")]
public class BootstrapAdminLogoutContext : ICollectionFixture<BAWebHost>
{
}
/// <summary>
///
/// </summary>
public class BAWebHost : WebApplicationFactory<Startup>
{
/// <summary>
/// 获得已经登录的HttpClient
/// </summary>
/// <param name="baseAddress"></param>
/// <returns></returns>
public HttpClient CreateClient(string baseAddress)
{
var client = CreateDefaultClient(new Uri($"http://localhost/{baseAddress}/"), new RedirectHandler(7), new CookieContainerHandler(_cookie));
return client;
}
protected override void ConfigureClient(HttpClient client)
{
base.ConfigureClient(client);
client.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_1_UnitTest) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0.1 Safari/605.1.15");
}
private readonly CookieContainer _cookie = new CookieContainer();
protected override void ConfigureWebHost(IWebHostBuilder builder)
{
base.ConfigureWebHost(builder);
var config = new ConfigurationBuilder();
config.AddEnvironmentVariables();
var con = config.Build();
// 增加单元测试本身的配置文件
builder.ConfigureAppConfiguration(app => app.AddJsonFile(TestHelper.RetrievePath($"UnitTest{Path.DirectorySeparatorChar}appsettings.json"), false, true));
if (con.GetValue("Appveyor", false))
{
builder.ConfigureAppConfiguration(app => app.AddJsonFile(TestHelper.RetrievePath($"UnitTest{Path.DirectorySeparatorChar}appsettings.appveyor.json"), false, true));
}
// 替换 SMS 服务
builder.ConfigureServices(services =>
{
services.AddTransient<ISMSProvider, DefaultSMSProvider>();
});
}
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C#
1
https://gitee.com/codingstudio/BootstrapAdmin.git
git@gitee.com:codingstudio/BootstrapAdmin.git
codingstudio
BootstrapAdmin
BootstrapAdmin
master

搜索帮助