Gra*_*ffe 3 c# rhino-mocks entity-framework-4
有没有办法使用Rhino Mocks生成Stub IObjectSet<T>?
之后的内容类似于以下代码:
var context = MockRepository.GenerateMock <IContext>();
//generate stub
var mockProjectObjectSet = MockRepository.GenerateStub<IObjectSet<Project>>();
TestObjectSets.GenerateFakeProjectList(mockProjectObjectSet);
context.Expect(p => p.Projects).Return(mockProjectObjectSet);
var projectRepository = new ProjectRepository(context);
Run Code Online (Sandbox Code Playgroud)
在GenerateFakeProjectList静态帮助器方法中,我只是创建指定类型的对象,并通过以下AddObject方法将它们添加到存根IObjectSet:
public static IObjectSet<Project> GenerateFakeProjectList(IObjectSet<Project> projectsObjectSet)
{
projectsObjectSet.AddObject(new Project()
{
Categories = null,
DateCreated = DateTime.Now.AddDays(-10),
.......
Run Code Online (Sandbox Code Playgroud)
我知道我参加这个派对已经迟到了,但这IObjectSet<T>是我以前用过的简单实现.我忘记了从哪里得到它:
public class MockObjectSet<T> : IObjectSet<T> where T : class {
readonly List<T> _container = new List<T>();
public void AddObject(T entity) {
_container.Add(entity);
}
public void Attach(T entity) {
_container.Add(entity);
}
public void DeleteObject(T entity) {
_container.Remove(entity);
}
public void Detach(T entity) {
_container.Remove(entity);
}
public IEnumerator<T> GetEnumerator() {
return _container.GetEnumerator();
}
IEnumerator IEnumerable.GetEnumerator() {
return _container.GetEnumerator();
}
public Type ElementType {
get { return typeof(T); }
}
public System.Linq.Expressions.Expression Expression {
get { return _container.AsQueryable<T>().Expression; }
}
public IQueryProvider Provider {
get { return _container.AsQueryable<T>().Provider; }
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
879 次 |
| 最近记录: |