feat: 完成单元测试搭建
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.AspNetCore.Builder;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.DependencyInjection.Extensions;
|
||||
using Microsoft.Extensions.Hosting;
|
||||
using NSubstitute.Extensions;
|
||||
|
||||
namespace Yi.Framework.Rbac.Test
|
||||
{
|
||||
public class YiFrameworkRbacTestWebBase : YiFrameworkRbacTestBase
|
||||
{
|
||||
public HttpContext HttpContext { get; private set; }
|
||||
public YiFrameworkRbacTestWebBase() : base()
|
||||
{
|
||||
HttpContext httpContext = DefaultHttpContextAccessor.CurrentHttpContext;
|
||||
ConfigureHttpContext(httpContext);
|
||||
HttpContext = httpContext;
|
||||
IApplicationBuilder app = new ApplicationBuilder(ServiceProvider);
|
||||
RequestDelegate httpDelegate = app.Build();
|
||||
httpDelegate.Invoke(httpContext);
|
||||
}
|
||||
|
||||
public override void ConfigureServices(HostBuilderContext host, IServiceCollection service)
|
||||
{
|
||||
service.Replace(new ServiceDescriptor(typeof(IHttpContextAccessor), typeof(DefaultHttpContextAccessor), ServiceLifetime.Singleton));
|
||||
base.ConfigureServices(host, service);
|
||||
}
|
||||
|
||||
protected virtual void ConfigureHttpContext(HttpContext httpContext)
|
||||
{
|
||||
httpContext.Request.Path = "/test";
|
||||
}
|
||||
}
|
||||
}
|
||||
internal class DefaultHttpContextAccessor : IHttpContextAccessor
|
||||
{
|
||||
internal static HttpContext? CurrentHttpContext { get; set; } = new DefaultHttpContext();
|
||||
public HttpContext? HttpContext { get => CurrentHttpContext; set => throw new NotImplementedException(); }
|
||||
}
|
||||
Reference in New Issue
Block a user