我正在使用clipboard.js,其中有一个标志
AddUnitTestingDbContext = true; // Will add a FakeDbContext and FakeDbSet for easy unit testing
它为单元测试创建 FakeDbContext 和 FakeDbSet ,但在 FakeDbContext 内部,某些方法未实现。
public System.Data.Entity.Infrastructure.DbEntityEntry<TEntity> Entry<TEntity>(TEntity entity) where TEntity : class
{
throw new System.NotImplementedException();
}
public System.Data.Entity.Infrastructure.DbEntityEntry Entry(object entity)
{
throw new System.NotImplementedException();
}
public System.Collections.Generic.IEnumerable<System.Data.Entity.Validation.DbEntityValidationResult> GetValidationErrors()
{
throw new System.NotImplementedException();
}
public System.Data.Entity.DbSet Set(System.Type entityType)
{
throw new System.NotImplementedException();
}
public System.Data.Entity.DbSet<TEntity> Set<TEntity>() where TEntity : class
{
throw new System.NotImplementedException();
}
public override string ToString()
{
throw new System.NotImplementedException();
}
覆盖它们或实现它们的正确方法是什么,以便我可以在单元测试中使用这些调用。
感谢您的时间。
答案 0 :(得分:0)
public System.Data.Entity.DbSet<TEntity> Set<TEntity>() where TEntity :
class
{
<#
foreach (Table tbl in from t in tables.Where(t => !t.IsMapping &&
t.HasPrimaryKey).OrderBy(x => x.NameHumanCase) select t)
{
#>
if(typeof(TEntity) == typeof(<#=tbl.NameHumanCaseWithSuffix #>))
{
return <#=Inflector.MakePlural(tbl.NameHumanCase) #> as
System.Data.Entity.DbSet<TEntity>;
}
<# } #>
throw new System.NotImplementedException("Doesn't have this table type!");
}