用于测试的简单依赖注入

时间:2013-05-28 17:08:14

标签: c# ninject mstest

我是Ninject的新手,我有一个非常简单的要求,但我无法在Ninject的文档中找到我想要的东西。

我有一个这样的课程:

public class User 
{
    public string Name {get;set;}
    ...
    public ICollection<Address> Addresses {get; protected set;}
}

public class Address
{
    public string Street {get;set;}
    ...
}

因此,我的测试类设置需要实例化用户以在许多测试中使用。

[TestClass]
public class UserTest
{
    User _myUser;

    [TestInitialize]
    public void Setup()
    {
        _myUser = new User();
        _myUser.Addresses.Add(new Address { Street = "Evergreen" }); // <-- Here I need Addresses must be Instantiated as, lets say, List<T>
    }
}

我需要的是_myUser.Addresses将注入一个Collection实例。 我无法弄清楚如何使用Ninject完成此任务。你能指出我正确的方向吗?

2 个答案:

答案 0 :(得分:1)

不应该为此需要Ninject。您可以在模型中执行类似的操作。

private ICollection<Address> _addresses;
public ICollection<Address> Addresses
{
    get { return _addresses ?? (_addresses = new HashSet<Address>()); }
    protected set { _addresses = value; }
}

这是我在模型中所做的事情,我宁愿默认使用空集合而不是空值。

答案 1 :(得分:0)

您需要的是“Property Setter Injection”和Ninject has a help page in its wiki以及示例。