用于测试的简单依赖注入

本文关键字:依赖 注入 简单 测试 用于 | 更新日期: 2023-09-27 18:15:49

我是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来完成这个任务。你能给我指个正确的方向吗?

用于测试的简单依赖注入

这个不需要Ninject。你可以在你的模型中做类似的事情。

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

这就是我在我的模型中所做的,当我宁愿有一个默认的空集合而不是一个空值。

你需要的是所谓的'属性Setter注入'和Ninject有一个帮助页面在其wiki的例子。