【发布时间】:2017-04-17 17:23:36
【问题描述】:
我有 ASP.NET Core API。我已经阅读了文档here,它展示了如何在 asp.net 核心中进行集成测试。该示例设置了一个测试服务器,然后调用控制器方法。
但是我想直接测试特定的类方法(不是控制器方法)?例如:
public class MyService : IMyService
{
private readonly DbContext _dbContext;
public MyService(DbContext dbContext)
{
_dbContext = dbContext;
}
public void DoSomething()
{
//do something here
}
}
当测试开始时,我希望调用startup.cs,这样所有的依赖项都会被注册。 (如 dbcontext)但我不确定在集成测试中如何解决 IMyService?
注意:我之所以要直接测试DoSomething() 方法是因为该方法不会被任何控制器调用。我在这个 API 中使用Hangfire 进行后台处理。 Hangfire 的后台处理作业将调用DoSomething() 方法。所以对于集成测试我想避免使用Hangfire,直接调用DoSomething()方法
【问题讨论】:
标签: asp.net-core asp.net-core-mvc xunit coreclr