繁体   English   中英

使用实体框架和DbContext测试问题

[英]Testing problems with Entity framework and DbContext

我正在一个项目中,我希望测试一些使用实体框架的类。 在此过程中,我创建了一个测试DbContext。

class FakeContext : DbContext, IDbContext
{
    public IDbSet<UserAcc> UserAcc { set; get; }
    public IDbSet<Movies> Movies { set; get; }

    public new IDbSet<T> Set<T>() where T : class
    {
        return base.Set<T>();
    }
}

[TestClass]
public class EFStorageTest
{
    private IStorageConnection _ef;

    [TestMethod]
    public void AddToContextTest()
    {
        _ef = new EFConnectionFactory().GetConnection<FakeContext>();
        _ef.Add(new UserAcc());
        _ef.SaveChanges();
        Assert.AreEqual(1, _ef.Get<UserAcc>().Count());
    }
 }

当我尝试将实体添加到上下文中时,我假设它会保留在内存中,但是Visual Studio会自动将其保存在某个位置。 自动创建的数据库位于哪里?

默认情况下,EF在SQL Server Express上创建名称等于完整数据上下文类名称的数据库。 即在您的情况下

 server=.\SQLEXPRESS;database=Your.Namespace.FakeContext

顺便说一句,我不建议您在测试中使用真实的数据库,如果您不进行验收测试,那是缓慢,脆弱且耗时的

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM