作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有没有办法使用 Rhino Mocks 为 IObjectSet<T>
生成 stub ?
我要的是类似下面的代码:
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);
在GenerateFakeProjectList
静态辅助方法,我只是简单地创建指定类型的对象并通过 AddObject
将它们添加到 stub 中IObjectSet
上的方法:
public static IObjectSet<Project> GenerateFakeProjectList(IObjectSet<Project> projectsObjectSet)
{
projectsObjectSet.AddObject(new Project()
{
Categories = null,
DateCreated = DateTime.Now.AddDays(-10),
.......
最佳答案
我知道我来晚了,但这是 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; }
}
}
关于c# - 使用 Rhino Mocks 模拟 IObjectSet<T>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5213234/
在我的自定义 ObjectContext 类中,我将我的实体集合公开为 IObjectSet,以便对它们进行单元测试。当我在已编译的查询中使用此 ObjectContext 并调用“Include”扩
我有以下设置代码: MockOf>().Setup(c => c.AddObject(dummy)).Verifiable(); MockOf().Setup(c => c.GetObjectSet(
有没有办法使用 Rhino Mocks 为 IObjectSet 生成 stub ? 我要的是类似下面的代码: var context = MockRepository.GenerateMock ()
我是一名优秀的程序员,十分优秀!