当前位置: 首页 > wzjs >正文

为什么网站收录下降正规绍兴网站建设公司

为什么网站收录下降,正规绍兴网站建设公司,如何拿网站后台账号,新乡专业网站制作📅 Day 7:单元测试 缓存优化 性能分析 ✅ 今日目标: 添加 单元测试项目(xUnit / Moq)测试 PostService 或 PostModel 的业务逻辑添加缓存机制(MemoryCache / Redis)使用 Application Insigh…

📅 Day 7:单元测试 + 缓存优化 + 性能分析

✅ 今日目标:

  • 添加 单元测试项目(xUnit / Moq)
  • 测试 PostServicePostModel 的业务逻辑
  • 添加缓存机制(MemoryCache / Redis)
  • 使用 Application Insights 进行性能监控
  • 提交 Git 版本记录进度

🧪 一、添加单元测试项目(xUnit)

✅ 步骤:

  1. 在解决方案中添加 xUnit 测试项目:

    dotnet new xunit -n MyBlog.Tests
    
  2. 添加项目引用:

    dotnet add reference ../MyBlog/MyBlog.csproj
    
  3. 安装必要的 NuGet 包:

    • Microsoft.AspNetCore.Mvc
    • Moq
    • EntityFrameworkCore.Testing.Moq

✅ 示例测试类:Services/PostServiceTests.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.EntityFrameworkCore;
using MyBlog.Models;
using MyBlog.Services;
using Xunit;namespace MyBlog.Tests.Services
{public class PostServiceTests{private readonly ApplicationDbContext _context;public PostServiceTests(){var options = new DbContextOptionsBuilder<ApplicationDbContext>().UseInMemoryDatabase(databaseName: "TestDb_PostService").Options;_context = new ApplicationDbContext(options);// 初始化数据if (!_context.Posts.Any()){_context.Posts.AddRange(new Post { Id = 1, Title = "C# 入门", Content = "学习 C#", CreatedAt = DateTime.Now },new Post { Id = 2, Title = "ASP.NET Core 教程", Content = "构建 Web 应用", CreatedAt = DateTime.Now });_context.SaveChanges();}}[Fact]public async Task GetAllPostsAsync_ReturnsAllPosts(){// Arrangevar service = new PostService(_context);// Actvar result = await service.GetAllPostsAsync();// AssertAssert.NotNull(result);Assert.Equal(2, result.Count());}[Fact]public async Task GetPostByIdAsync_ReturnsCorrectPost(){// Arrangevar service = new PostService(_context);// Actvar result = await service.GetPostByIdAsync(1);// AssertAssert.NotNull(result);Assert.Equal("C# 入门", result.Title);}}
}

💡 小贴士:你也可以为评论、分类、搜索等功能编写测试。


🧠 二、创建 PostService(可选重构)

为了更好的测试和解耦,你可以将数据库访问逻辑封装到服务层。

✅ 创建 Services/PostService.cs

using System.Collections.Generic;
using System.Threading.Tasks;
using Microsoft.EntityFrameworkCore;
using MyBlog.Models;namespace MyBlog.Services
{public class PostService{private readonly ApplicationDbContext _context;public PostService(ApplicationDbContext context){_context = context;}public async Task<IEnumerable<Post>> GetAllPostsAsync(){return await _context.Posts.ToListAsync();}public async Task<Post?> GetPostByIdAsync(int id){return await _context.Posts.FindAsync(id);}public async Task AddPostAsync(Post post){_context.Posts.Add(post);await _context.SaveChangesAsync();}// 可继续添加其他方法}
}

✅ 注册服务(Program.cs):

builder.Services.AddScoped<PostService>();

然后在 Razor Page 中注入使用它。


🧊 三、添加缓存优化(MemoryCache)

我们可以对文章列表进行缓存,提升首页加载速度。

✅ 修改 Pages/Posts/Index.cshtml.cs

注入 IMemoryCache

private readonly IMemoryCache _cache;public IndexModel(ApplicationDbContext context, IMemoryCache cache)
{_context = context;_cache = cache;
}public async Task<IActionResult> OnGetAsync()
{const string cacheKey = "AllPosts";if (!_cache.TryGetValue(cacheKey, out IEnumerable<Post> posts)){posts = await _context.Posts.Include(p => p.Category).ToListAsync();var cacheEntryOptions = new MemoryCacheEntryOptions().SetSlidingExpiration(TimeSpan.FromMinutes(5));_cache.Set(cacheKey, posts, cacheEntryOptions);}Posts = posts;return Page();
}

🔍 四、使用 Application Insights 进行性能分析(可选)

Application Insights 是微软提供的 APM 工具,可用于监控请求、异常、依赖项等。

✅ 步骤:

  1. 登录 Azure 并创建 Application Insights 资源。
  2. 获取 Instrumentation Key。
  3. Program.cs 中启用 AI:
builder.Services.AddApplicationInsightsTelemetry(builder.Configuration["APPLICATIONINSIGHTS_CONNECTION_STRING"]);
  1. 配置 appsettings.json
{"Logging": {"ApplicationInsights": {"LogLevel": {"Default": "Information"}}},"APPLICATIONINSIGHTS_CONNECTION_STRING": "InstrumentationKey=your-key-here"
}
  1. 部署后即可在 Azure 查看性能日志。

📦 五、提交 Git 版本

git add .
git commit -m "Day7: Added unit tests, caching and performance analysis setup"

📝 今日总结

今天你完成了:

✅ 添加并配置 xUnit 单元测试项目
✅ 实现 PostService 并完成基础逻辑测试
✅ 引入 MemoryCache 缓存文章列表提升性能
✅ 可选配置 Application Insights 监控应用性能
✅ 提交版本控制记录


📆 明日计划(Day8)

我们将进入 部署与上线阶段

  • 使用 Docker 构建容器镜像
  • 配置 GitHub Actions 自动化 CI/CD
  • 部署到本地服务器或云平台(如 Azure App Service)
  • 准备作品集展示
http://www.dtcms.com/wzjs/536583.html

相关文章:

  • 网站开发技术人员怎么接单wordpress缩略图代码显示
  • 淘宝客网站一定要备案内蒙古网站建设价格
  • 广州市海珠区建设局五位一体网站网易企业邮箱登入路口
  • 免费做一建或二建题目的网站word导入wordpress
  • 做seo网站 公司快手seo软件下载
  • 爱有声小说网站捡个校花做老婆网页设计课程培训班
  • 自建微网站服务器门户类网站模板
  • 潍坊建设gc局网站最简单的网站开发软件有哪些
  • 南昌科技网站建设双11主机 wordpress 2015
  • 外贸建设网站制作wordpress ping服务器
  • 网站维护费一年多少钱品牌推广案例及方案
  • 网站建设 青少年宫桥拓云智能建站
  • 天一建设网站做全景图二维码的网站
  • 我想创建一个网站自己玩玩上海网络科技有限公司有哪些
  • 中文版网站建设费用咸阳做网站的公司有哪些
  • 建网站域名后怎样做山西长治做网站公司
  • 石家庄大型公司建站做论坛网站
  • 农村做网站开发wordpress rss 爬取
  • 在线网站免费网站入口自己写的字体wordpress
  • 一般网站建设的流程图厦门百度推广公司
  • 网站运行方案seo 工具推荐
  • 网站设计一般多少钱ps插件国外网站
  • winserverfrp可以做网站吗上海公司注册一网通办官网
  • 辽源市建设局网站在建设主题网站时
  • 长乐福州网站建设网站功能建设流程图
  • 苏州市建设中心网站企业网站搭建项目概述范文
  • 做外贸的免费网站海南网站优化
  • 大型门户网站制作流程wordpress4.9.4环境要求
  • 采集文章留在网站山东住房建设厅官网站首页
  • 苏州做网站公司找苏州聚尚网络招聘网官方网站