0

如果我的内核模块的所有绑定都设置为正确的目标,我想进行单元测试。我发现最简单的方法是创建一个加载模块的内核,获取每个绑定类型并检查它是否是正确的:

this.kernel = new StandardKernel(new MainKernelModule());
Assert.That(this.kernel.Get<IMyClass>() is MyClass);

但是有些类依赖于与服务器的连接,这不应该在我的单元测试中使用。这就是为什么内核不能在单元测试环境中创建这些类的原因。

我的问题:如何获得 IBinding 的目标类?

var module = new MainKernelModule();
var kernel = new StandardKernel(module);

foreach (IBinding binding in module.Bindings)
{
     // if (binding.BindingTarget is MyClass)
     // Debug.WriteLine("Yeah");
}

我希望有人能帮助我。不幸的是,我在谷歌上一无所获。

提前致谢。

4

1 回答 1

1

你不能或者你能告诉我什么是目标类

Bind<IFoo>().ToMethod(ctx=> IsItSunny() ? New SunnyFoo() : BadWeatherFoo())

我们通常做的不是直接测试绑定。但是要编写集成测试,我们将接口类替换为其他系统,例如通过模拟数据库访问或 Web 服务并测试系统功能。这可以检测到几乎所有的绑定问题。当您进行手动集成测试时,可以很快检测到错误绑定到外部系统的小风险。

于 2012-08-17T23:59:45.827 回答