Moq 在使用 ninject 时生成 class 声明
Moq generate class declaration while using ninject
我正在尝试对第 3 方库进行单元测试,该库的构造函数上有许多接口定义。
例如;
IKernel kernel = new StandardKernel();
kernel.Bind<IOwnerDataProvider>().To<OwnerDataProviderFake>();
我不得不手动创建 OwnerDataProviderFake,因为我不想使用它的实际实现。
有没有什么方法可以使用 Moq 创建此接口的伪实现而不是手动创建?
例如;
kernel.Bind<IOwnerDataProvider>().To<Mock.GenerateFakeClassDefinition<IOwnerDataProvider>()>();
当然,这就是最小起订量(和嘲笑)的全部意义所在。查看 Moq Quick Start 以获取更多创建模拟对象的示例,但试试这个开始:
kernel.Bind<IOwnerDataProvider>()
.ToMethod(context => new Moq.Mock<IOwnerDataProvider>().Object);
这将在您每次从内核获取接口时创建一个新的 IOwnderDataProvider
接口模拟。
您可能希望通过调用 Setup
来配置它的行为,但如果没有您提供的更多信息,除此之外我无能为力。
我正在尝试对第 3 方库进行单元测试,该库的构造函数上有许多接口定义。
例如;
IKernel kernel = new StandardKernel();
kernel.Bind<IOwnerDataProvider>().To<OwnerDataProviderFake>();
我不得不手动创建 OwnerDataProviderFake,因为我不想使用它的实际实现。
有没有什么方法可以使用 Moq 创建此接口的伪实现而不是手动创建?
例如;
kernel.Bind<IOwnerDataProvider>().To<Mock.GenerateFakeClassDefinition<IOwnerDataProvider>()>();
当然,这就是最小起订量(和嘲笑)的全部意义所在。查看 Moq Quick Start 以获取更多创建模拟对象的示例,但试试这个开始:
kernel.Bind<IOwnerDataProvider>()
.ToMethod(context => new Moq.Mock<IOwnerDataProvider>().Object);
这将在您每次从内核获取接口时创建一个新的 IOwnderDataProvider
接口模拟。
您可能希望通过调用 Setup
来配置它的行为,但如果没有您提供的更多信息,除此之外我无能为力。