为了账号安全,请及时绑定邮箱和手机立即绑定

Asp.Net Core WebApi:创建单元测试

Asp.Net Core WebApi:创建单元测试

C#
慕尼黑的夜晚无繁华 2021-07-02 14:04:03
我有一个 AccountController 类,这里是它的 ctor:public AccountController(            UserManager<User> userManager,            SignInManager<User> signInManager,            RoleService roleService,            IConfiguration configuration)        {            _userManager = userManager;            _signInManager = signInManager;            _roleService = roleService;            _configuration = configuration;        }RoleService这是我自己的课程。我创建了一个 xUnit Test 项目并使用 Entity Framework Core 来避免模拟和伪造数据库。我使用UseInMemoryData方法:var options = new DbContextOptionsBuilder<ApplicationDbContext>()                .UseInMemoryDatabase(Guid.NewGuid().ToString())                .Options;            var context = new ApplicationDbContext(options);但我不明白如何测试 AccountController、女巫注入UserManager<User>, SignInManager<User>等。如何创建 AccountController 类的实例?
查看完整描述

1 回答

?
慕容708150

TA贡献1831条经验 获得超4个赞

我通常不会为控制器创建单元测试,因为我们需要模拟很多东西,这是一项艰巨的工作。

如果您认为您的控制器仅调用另一段代码,例如应用程序服务或命令处理程序,您可以使用集成测试覆盖您的控制器,并为您的命令处理程序或应用程序服务或您拥有业务逻辑的任何层创建单元测试.

但也许如果你真的想为你的控制器创建一个单元测试,你将需要使用像 Moq 这样的框架在控制器中创建你需要的所有依赖项的模拟。

我希望这会有所帮助:D


查看完整回答
反对 回复 2021-07-10
  • 1 回答
  • 0 关注
  • 331 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信