0


Furion项目的单元测试

在.Net项目中如果要对Controller或者服务进行测试一般要用mock创建需要注入的实例, 要配置好这些实例还挺复杂的
Furion帮我们实现了单元测试的构造函数注入, 让单元测试变得简单, 具体步骤如下

在解决方面里面新增一个xunit的测试项目TestProject1 (测试项目一般单独放在test目录里面)
NuGet安装Furion.Pure和Furion.Pure.Xunit ; 版本要和项目统一
把解决方案里面的项目全部引入

添加一个启动类, 初始化Furion

usingFurion.Xunit;usingMicrosoft.Extensions.DependencyInjection;usingXunit.Abstractions;usingXunit.Sdk;// 配置启动类类型,第一个参数是 TestProgram 类完整限定名,第二个参数是当前项目程序集名称[assembly:TestFramework("TestProject1.TestProgram","TestProject1")]namespaceTestProject1;/// <summary>/// 单元测试启动类/// </summary>publicclassTestProgram:TestStartup{publicTestProgram(IMessageSink messageSink):base(messageSink){// 初始化 Furion
        Serve.RunNative(services =>{// 注册远程服务
            services.AddRemoteRequest();});}}

测试Service

usingAdmin.NET.Application.Service;usingAdmin.NET.Core;usingAdmin.NET.Core.Aio;usingFurion.RemoteRequest.Extensions;usingXunit.Abstractions;namespaceTestProject1;publicclassUnitTest1{/// <summary>/// 输出日志/// </summary>privatereadonlyITestOutputHelper Output;privatereadonlyXxxxxService _xxxxxService;//需测试的服务//基于Furion框架实现构造函数注入publicUnitTest1(ITestOutputHelper tempOutput,SqlSugarRepository<Entity1> rep,SqlSugarRepository<Entity2> req2){
        Output = tempOutput;//构造服务实例
        _xxxxxService=newXxxxxService(rep, req2);}[Fact]publicasyncTaskTest1(){var obj =await _xxxxxService.Get(newAdmin.NET.Core.BaseIdInput(){ Id =0});
        Assert.Equal(2,1+1);}[Fact]publicasync Task 测试请求百度(){var rep =await"https://www.baidu.com".GetAsync();
        Assert.True(rep.IsSuccessStatusCode);}}

可以愉快的进行单元测试了
用单元测试Debug代码省时省力

问题

单元测试的时候没有token, 有的时候就会拿不到当前用户的id, 不知道怎么解决

标签: 单元测试 Furion

本文转载自: https://blog.csdn.net/zheyiw/article/details/138353196
版权归原作者 包达叔 所有, 如有侵权,请联系我们删除。

“Furion项目的单元测试”的评论:

还没有评论