使用 NSubstitute 和 Ninject 到 return 一个值
Using NSubstitute and Ninject to return a value
在我的 NinjectDependencyResolver: IDependencyResolver
中,我有一个 AddBindings() 方法,现在我希望它为我 return 一些硬编码值,直到我稍后将它连接到数据库。
我想在 AddBindings() 方法中模拟和使用的 class 和接口是这样的:
public class Configuration
{
public string WebSiteNotActiveMessage { get; set; }
public bool IsWebSiteActive { get; set; }
}
public interface IConfigurationManager
{
Models.Configuration.Configuration ConfigFileValues { get; }
}
现在我想在我的 Ninject 方法中模拟接口和 return 一个值,所以我开始写这样的东西但是卡住了,不知道我应该怎么做:
private void AddBindings()
{
var config = Substitute.For<IConfigurationManager>();
config.ConfigFileValues.IsWebSiteActive = true;
config.ConfigFileValues.WebSiteNotActiveMessage = "Website is not active!!!";
// ?
}
关于您的界面的主要问题是您唯一的 属性、ConfigFileValues
,只有一个 getter。它还应该有 setter,这将从实现接口的 class 初始化它。就代码而言,我建议是这样的:
public interface IConfigurationManager
{
Models.Configuration.Configuration ConfigFileValues { get; set; }
}
一般* NSubstitute 不会自动替换 return 类 的成员,例如 Configuration
,因此您需要手动将其存根:
var config = Substitute.For<IConfigurationManager>();
config.ConfigFileValues.Returns(new Configuration());
config.ConfigFileValues.IsWebSiteActive = true;
config.ConfigFileValues.WebSiteNotActiveMessage = "Website is not active!!!";
(* pure virtual classes 除外)
希望对您有所帮助。
在我的 NinjectDependencyResolver: IDependencyResolver
中,我有一个 AddBindings() 方法,现在我希望它为我 return 一些硬编码值,直到我稍后将它连接到数据库。
我想在 AddBindings() 方法中模拟和使用的 class 和接口是这样的:
public class Configuration
{
public string WebSiteNotActiveMessage { get; set; }
public bool IsWebSiteActive { get; set; }
}
public interface IConfigurationManager
{
Models.Configuration.Configuration ConfigFileValues { get; }
}
现在我想在我的 Ninject 方法中模拟接口和 return 一个值,所以我开始写这样的东西但是卡住了,不知道我应该怎么做:
private void AddBindings()
{
var config = Substitute.For<IConfigurationManager>();
config.ConfigFileValues.IsWebSiteActive = true;
config.ConfigFileValues.WebSiteNotActiveMessage = "Website is not active!!!";
// ?
}
关于您的界面的主要问题是您唯一的 属性、ConfigFileValues
,只有一个 getter。它还应该有 setter,这将从实现接口的 class 初始化它。就代码而言,我建议是这样的:
public interface IConfigurationManager
{
Models.Configuration.Configuration ConfigFileValues { get; set; }
}
一般* NSubstitute 不会自动替换 return 类 的成员,例如 Configuration
,因此您需要手动将其存根:
var config = Substitute.For<IConfigurationManager>();
config.ConfigFileValues.Returns(new Configuration());
config.ConfigFileValues.IsWebSiteActive = true;
config.ConfigFileValues.WebSiteNotActiveMessage = "Website is not active!!!";
(* pure virtual classes 除外)
希望对您有所帮助。