Unit testing MockUnitOfWork“无法解析符号MockUnitOfWork”

Unit testing MockUnitOfWork“无法解析符号MockUnitOfWork”,unit-testing,nunit,rhino-mocks,moq,Unit Testing,Nunit,Rhino Mocks,Moq,我试图使用这里的示例从IRepository获取图3中的假数据库 我得到的是“无法解决工作中的问题”。 我已经安装/引用了NUnit/Moq/Rhino.Mock,但找不到对MockUnitOfWork的任何引用。 感谢您的帮助。您可以删除MockUnitOfWork,因为代码中从未使用过它 我认为这是重构后的遗留问题。这篇文章没有明确说明什么是MockUnitOfWork,但因为它是一个显式声明的类型,所以它必须是一个手动的Mock 尽管语义等价,但它与Moq或rhinomock无关 如果您

我试图使用这里的示例从IRepository获取图3中的假数据库

我得到的是“无法解决工作中的问题”。 我已经安装/引用了NUnit/Moq/Rhino.Mock,但找不到对MockUnitOfWork的任何引用。 感谢您的帮助。

您可以删除MockUnitOfWork,因为代码中从未使用过它


我认为这是重构后的遗留问题。

这篇文章没有明确说明什么是MockUnitOfWork,但因为它是一个显式声明的类型,所以它必须是一个手动的Mock

尽管语义等价,但它与Moq或rhinomock无关


如果您可以下载本文的源代码,我敢肯定您会在测试项目中找到一个名为MockUnitOfWork的类。

不幸的是,此示例代码没有源代码;谢谢你的关注,谢谢你的关注!不幸的是,现在代码正在抱怨私有只读缓存类型;说缓存没有类型参数:VS从哪个程序集获取缓存?我很确定这也是作者定义的类型。我唯一熟悉的缓存类是ASP.NET。缓存类似乎是类似委托的Func,它接受类型参数和Func,解析并返回必须强制转换的指定类型的对象。在这种情况下,作者传递一个Func,当用户请求列表时将执行该Func,并将使用激活器实例化集合,然后返回它。
public class InMemoryRepository : IRepository
{
    private readonly Cache<Type, object> _types;
    private MockUnitOfWork _lastUnitOfWork;

    public InMemoryRepository()
    {
        _types = new Cache<Type, object>(type =>
        {
            Type listType = typeof(List<>).MakeGenericType(type);
            return Activator.CreateInstance(listType);
        });
    }

    private IList<T> listFor<T>()
    {
        return (IList<T>)_types.Get(typeof(T));
    }

    public T Find<T>(long id) where T : Entity
    {
        return listFor<T>().FirstOrDefault(t => t.Id == id);
    }

    public void Delete<T>(T target)
    {
        listFor<T>().Remove(target);
    }

    public T[] Query<T>(Expression<Func<T, bool>> where)
    {
        var query = from item in listFor<T>() select item;
        return query.Where(where.Compile()).ToArray();
    }

    public void Save<T>(T target)
    {
        listFor<T>().Add(target);
    }
}