创建用于单元测试的上下文

时间:2019-01-13 07:47:44

标签: asp.net-core-webapi web-api-testing

我有一个使用asp.net网络api的项目,该项目使用Identity进行授权等。

现在我要为此编写单元测试,但是我不知道如何?

我有一个Context使用IdentityDbContext,如下所示:

public class MyContext: IdentityDbContext<Users, IdentityRole<int>, int>
{
  public ControllerDbContext(DbContextOptions<ControllerDbContext> options)
        : base(options)
    {
        Database.Migrate();
    }
    public DbSet<Student> Stu{ get; set; }
    public DbSet<Book> Boo{ get; set; }

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
      .....
    }
}

并且我有这样的控制器:

[Route("api/[controller]")]
[ApiController]
public class ValueController : ControllerBase
{
    private readonly MyContext _context;

    public ValueController (MyContext context)
    {
        this._context = context;
    }

    public IActionResult Post([FromBody] data)
    {
        .... (other operation)
    }

}

现在,我要为此编写单元测试,我很困惑:

[TestClass]
public class UnitTest1
{
    [TestMethod]
    public void TestMethod1()
    {
       var controller = new ValueController() //error, I need Context
    }
}

我该如何解决? 谢谢您的帮助

0 个答案:

没有答案