繁体   English   中英

使用NSubstitute和Ninject返回值

[英]Using NSubstitute and Ninject to return a value

在我的NinjectDependencyResolver: IDependencyResolver我有一个AddBindings()方法,现在我希望它为我返回一些硬编码值,直到以后将其连接到数据库。

我要模拟并在该AddBindings()方法中使用的类和接口如下所示:

public class Configuration
{
    public string WebSiteNotActiveMessage { get; set; }
    public bool IsWebSiteActive { get; set; }
}

public interface IConfigurationManager
{
    Models.Configuration.Configuration ConfigFileValues { get; }
}

现在,我想模拟该接口并在我的Ninject方法中返回一个值,所以我开始写这样的东西,但是被卡住了,不确定如何去做:

  private void AddBindings()
    {
        var config = Substitute.For<IConfigurationManager>();

        config.ConfigFileValues.IsWebSiteActive = true;
        config.ConfigFileValues.WebSiteNotActiveMessage = "Website is not active!!!";

        // ? 
    }

有关界面的主要问题是,您唯一的属性ConfigFileValues仅具有吸气剂。 它也应该有setter,它将从实现接口的类中对其进行初始化。 就我建议的代码而言:

public interface IConfigurationManager
{
    Models.Configuration.Configuration ConfigFileValues { get; set; }
}

通常,NSubstitute不会自动替代返回诸如Configuration类的类的成员,因此您需要手动将其存根:

var config = Substitute.For<IConfigurationManager>();
config.ConfigFileValues.Returns(new Configuration());
config.ConfigFileValues.IsWebSiteActive = true;
config.ConfigFileValues.WebSiteNotActiveMessage = "Website is not active!!!";

(*是纯虚拟类的例外)

希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM