如何使用 Autofac.Extras.Moq

问题描述

使用 Autofac.Extras.Moq,您将如何注册调用代码的依赖项,如下所示?

下面,我正在从 Class1 创建一个模拟。然后我试图调用“MyFunction”,我认为问题是由于 BaseWorker 基类和 BaseLoggingUtility 未注册。我知道如何使用 Autofac 处理注册,但我不熟悉如何在使用 AutoMock 时进行。

我曾尝试在 mock.Create() 中使用 lambda 来尝试注册模拟以及注册类型..但无济于事。

代码

using (var mock = AutoMock.GetLoose())
{
   var Class1_mock = mock.Create<Class1>();

   var result = Class1_mock.MyFunction();
}

// Class inhereits from BaseWorker
// BaseLoggingUtility is a property of BaseWorker
public Response MyFunction()
{
    BaseLoggingUtility.Log("hey look a log); // This is null at runtime

    // ... more things
}

更新 -

我看到了这篇文章的答案:Using AutoFac Property Injection with Moq。 但是,在应用Action委托时,我的BaseLoggingUtility仍然为空。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...