使用Effort进行单元测试

时间:2013-03-15 15:55:14

标签: entity-framework unit-testing

我目前正在尝试使用“Effort”框架(http://effort.codeplex.com/wikipage?title=Tutorials&referringTitle=Home)对实体框架的上下文类进行单元测试。

这是我目前的测试方式:

[TestMethod]
public void GetUseraccountsForRealTest()
{
    DbConnection connection = Effort.DbConnectionFactory.CreateTransient();
    SqlContext context = new SqlContext(connection);

    context.TaskComment.Add(new TaskComment() { Id = 1, Message = "Test" });
}

最后一行不起作用。没有任何事情发生。

这是我的SqlContext类的外观:

public class SqlContext : DbContext
{
    ...
    public IDbSet<TaskComment> TaskComment { get; set; }
    ...

    //Constructor used by webserver
    public SqlContext(string connectionString) : base(connectionString)
    {
    }

    //Constructor used for unit testing
    public SqlContext(DbConnection connection) : base(connection, true)
    {
        this.Configuration.LazyLoadingEnabled = false;
    }

    /// 
    /// <param name="modelBuilder"></param>
    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
        modelBuilder.Conventions.Remove<OneToManyCascadeDeleteConvention>();   
    }
}

任何人都知道如何解决这个问题?没有“努力”的经验,也没有太多的文档。 : - (

1 个答案:

答案 0 :(得分:1)

我自己解决了这个问题。 我没有在我的上下文中使用IDbSet,只是DbSet导致了一些困难。