相关疑难解决方法(0)

模拟或伪造DbEntityEntry或创建新的DbEntityEntry

紧接着我关于嘲笑DbContext的另一个问题.我还有另外一个关于模拟 EF Code First的问题.

我现在有一个更新的方法,如下所示:

if (entity == null)
    throw new ArgumentNullException("entity");

Context.GetIDbSet<T>().Attach(entity);
Context.Entry(entity).State = EntityState.Modified;
Context.CommitChanges();

return entity;
Run Code Online (Sandbox Code Playgroud)

Context是我自己的DbContext的接口.

我遇到的问题是,我该如何处理

Context.Entry(entity).State.

我已经介绍了这段代码,当我有一个真实的DbContext作为我的Context接口的实现时,它就可以工作了.但是当我把假的上下文放在那里时,我不知道如何处理它.

DbEntityEntry类没有构造函数,所以我不能在我的伪上下文中创建一个新构造函数.

有没有人在CodeFirst解决方案中嘲弄或伪造DbEntityEntry有什么成功?

或者有更好的方法来处理状态变化吗?

entity-framework ef-code-first

60
推荐指数
1
解决办法
2万
查看次数

实体框架4.1的假DbContext测试

我正在使用本教程伪造我的DbContext并测试:http://refactorthis.wordpress.com/2011/05/31/mock-faking-dbcontext-in-entity-framework-4-1-with-a-generic -repository /

但我必须更改FakeMainModuleContext实现以在我的控制器中使用:

public class FakeQuestiona2011Context : IQuestiona2011Context
{
    private IDbSet<Credencial> _credencial;
    private IDbSet<Perfil> _perfil;
    private IDbSet<Apurador> _apurador;
    private IDbSet<Entrevistado> _entrevistado;
    private IDbSet<Setor> _setor;
    private IDbSet<Secretaria> _secretaria;
    private IDbSet<Pesquisa> _pesquisa;
    private IDbSet<Pergunta> _pergunta;
    private IDbSet<Resposta> _resposta;

    public IDbSet<Credencial> Credencial { get { return _credencial ?? (_credencial = new FakeDbSet<Credencial>()); } set { } }
    public IDbSet<Perfil> Perfil { get { return _perfil ?? (_perfil = new FakeDbSet<Perfil>()); } set { } }
    public IDbSet<Apurador> Apurador { get …
Run Code Online (Sandbox Code Playgroud)

.net tdd asp.net-mvc unit-testing entity-framework

46
推荐指数
3
解决办法
3万
查看次数

假实体框架4.1的DbContext来测试我的存储库

我有一个Base Repository,所有Entities存储库都继承了它.

在我的睾丸中,我创建了一个Fake DbContext和Fake DbSet来测试我的存储库,但是当我在FakeDbContext中实现一些方法时,我无法实现IDbContext.Entry方法:

public class FakeDbContext : IDbContext
{
    private IDbSet<Usuario> _usuario;
    private IDbSet<Atividade> _atividade;
    private IDbSet<Autor> _autor;
    private IDbSet<CategoriaModulo> _categoriaModulo;
    private IDbSet<CategoriaMateria> _categoriaMateria;
    private IDbSet<Site> _site;
    private IDbSet<Modulo> _modulo;
    private IDbSet<Perfil> _perfil;
    private IDbSet<CategoriaGaleriaImagem> _categoriaGaleriaImagem;

    public IDbSet<Usuario> Usuario { get { return _usuario ?? (_usuario = new FakeDbSet<Usuario>()); } set { } }
    public IDbSet<Atividade> Atividade { get { return _atividade ?? (_atividade = new FakeDbSet<Atividade>()); } set { } }
    public IDbSet<Autor> Autor { …
Run Code Online (Sandbox Code Playgroud)

.net c# unit-testing entity-framework repository

3
推荐指数
1
解决办法
6314
查看次数