【发布时间】:2018-05-29 07:33:43
【问题描述】:
我有一个 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 类的实例?
【问题讨论】:
-
您是否要进行完整的集成测试,即测试整个
AccountController,包括数据库访问和http请求管道? -
您将创建该类的实例 - 这将为您的控制器提供完美的测试,您可以重构 alter 而无需重写所有测试
标签: c# unit-testing asp.net-core entity-framework-core xunit