mirror of
https://github.com/nsnail/NetAdmin.git
synced 2025-12-26 16:05:49 +08:00
feat: ✨ 基础模块
注册登录 用户管理 角色管理 部门管理 消息管理 接口管理 菜单管理 字典管理 缓存管理 请求日志 系统设置 版本信息 代码生成
This commit is contained in:
17
src/backend/NetAdmin.Tests/NetAdmin.Tests.csproj
Normal file
17
src/backend/NetAdmin.Tests/NetAdmin.Tests.csproj
Normal file
@@ -0,0 +1,17 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="../NetAdmin.Host/NetAdmin.Host.csproj"/>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="xunit" Version="2.6.1"/>
|
||||
<PackageReference Include="Microsoft.AspNetCore.Mvc.Testing" Version="8.0.0"/>
|
||||
<PackageReference Include="xunit.runner.visualstudio" Version="2.5.3">
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
</PackageReference>
|
||||
<PackageReference Include="coverlet.collector" Version="6.0.0">
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
</PackageReference>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
43
src/backend/NetAdmin.Tests/WebApiTestBase.cs
Normal file
43
src/backend/NetAdmin.Tests/WebApiTestBase.cs
Normal file
@@ -0,0 +1,43 @@
|
||||
using System.Net.Http.Headers;
|
||||
using System.Net.Http.Json;
|
||||
using Microsoft.AspNetCore.Mvc.Testing;
|
||||
using NetAdmin.Domain.Dto;
|
||||
using NetAdmin.Domain.Dto.Sys.User;
|
||||
using Xunit;
|
||||
using Xunit.Abstractions;
|
||||
|
||||
namespace NetAdmin.Tests;
|
||||
|
||||
/// <summary>
|
||||
/// WebApi 测试用例基类
|
||||
/// </summary>
|
||||
public abstract class WebApiTestBase<T>
|
||||
(WebApplicationFactory<T> factory, ITestOutputHelper testOutputHelper) : IClassFixture<WebApplicationFactory<T>>
|
||||
where T : AppStartup
|
||||
{
|
||||
private const string _ACCOUNT = "root";
|
||||
private const string _API_SYS_USER_LOGIN_BY_PWD = "/api/sys/user/login.by.pwd";
|
||||
private const string _AUTH_SCHEMA = "Bearer";
|
||||
private const string _PASSWORD = "1234qwer";
|
||||
private string _accessToken;
|
||||
|
||||
/// <summary>
|
||||
/// Post请求
|
||||
/// </summary>
|
||||
protected async Task<HttpResponseMessage> PostAsync(string url, HttpContent content)
|
||||
{
|
||||
var client = factory.CreateClient();
|
||||
if (_accessToken == null) {
|
||||
var loginRsp = await client.PostAsync(_API_SYS_USER_LOGIN_BY_PWD
|
||||
, JsonContent.Create(
|
||||
new LoginByPwdReq { Password = _PASSWORD, Account = _ACCOUNT }));
|
||||
var loginRspObj = (await loginRsp.Content.ReadAsStringAsync()).ToObject<RestfulInfo<LoginRsp>>();
|
||||
_accessToken = loginRspObj.Data.AccessToken;
|
||||
}
|
||||
|
||||
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(_AUTH_SCHEMA, _accessToken);
|
||||
var ret = await client.PostAsync(url, content);
|
||||
testOutputHelper.WriteLine(await ret.Content.ReadAsStringAsync());
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user