c# - How to test MVC actions with Code First? -
i'm trying test mvc actions, created irepository , mockrepository
public class repository : dbcontext, irepository { public idbset<tentity> someentities { get; set; } } public interface irepository : idisposable { idbset<tentity> someentities { get; set; } int savechanges(); }
with create
, delete
actions simple, stuck edit
action :
private irepository repository; public actionresult edit(tentity entity) { if (modelstate.isvalid) { repository.entry(entity).state = entitystate.modified; repository.savechanges(); return redirecttoaction("index"); } return view(entity); }
so see 2 ways solve problem:
should add irepository new method
dbentityentry<tentity> entry<tentity>(tentity entity) tentity : class;
how this?
dbcontext.entry
method returns specificdbentityentry<tentity>
type?or change way update entity? recommended way this?
i abstract functionality of ef more are, meaning actions following.
private irepository repository; public actionresult edit(tentity entity) { if (modelstate.isvalid) { repository.update(entity); repository.savechanges(); return redirecttoaction("index"); } return view(entity); }
then can make mock repository , test desired functions called.
note: separate entities models , manage unit of work using action filter, that's not related post.
Comments
Post a Comment