如何使用 Entity Framework 6 为 ASP.NET MVC 5 的 CRUD 应用程序设置集成测试?

问题描述 投票:0回答:1

我有一个功能性 CRUD 应用程序,(简单地说)可以通过 GUI 从 localdb 创建、读取、更新和删除教师。

关于创建,我在控制器中有两个操作结果:

public ActionResult Create()
{
    return View();
}

[HttpPost]
public ActionResult Create(ModelTeacher oTeacher)
{
    if (!ModelState.IsValid)
    {
        // Return to the view with the validation error messages
        return View(oTeacher);
    }

    db.DbTeachers.Add(oTeacher);
    db.SaveChanges();

    return RedirectToAction("SuccessCreate", "Teacher");
}

我还没有找到适合我的关于如何测试 CRUD 的资源。我更喜欢进行集成测试并进行 CRUD 操作,因此最终测试(删除)会将其从数据库中删除。我觉得模拟数据库没有必要,因为它是一个很小的localdb。

我测试这个控制器的想法是在测试项目中重新创建一个控制器,创建一个教师,找到它并断言它不为空。但看来搭建测试环境并没有那么简单。

c# asp.net-mvc entity-framework testing xunit
1个回答
0
投票

这个 github 存储库帮助我理解了。我缺乏依赖注入,这是我推迟学习的一个概念。

https://github.com/MateuszPeczek/UnitTest/blob/master/TestProject/UnitTests/TestClassForCRUDController.cs

© www.soinside.com 2019 - 2024. All rights reserved.