【问题标题】:Rhino Mock, Mock list of interfaceRhino Mock,接口的Mock列表
【发布时间】:2013-04-14 15:29:45
【问题描述】:

我如何在 for 循环中模拟对象列表

这里是代码:`

 public class SearchResult<T>
    {


        private readonly ISearcher<T> _searcher;
        private readonly IList<ISearchConfigurator> _configurators; 


        public SearchResult(ISearcher<T> searcher, IList<ISearchConfigurator> configurators)
        {
            _searcher = searcher;
            _configurators = configurators;
        }


        public DomainSearchResult<T> FindInAllDomains()
        {
            DomainSearchResult domainSearchResults = new DomainSearchResult<T>();
            foreach (var configurator in _configurators)
            {
                IList<T> results = _searcher.SearchAll(configurator);
                domainSearchResults.Results.Add(_configurator.DomainName, results);
            }
            return domainSearchResults;
        }
    }`

属性结果在 DomainSearchResult 类中声明:

IDictionary<string,IList<T>> Results { get; set; }

然后我尝试了以下方法:

        [Test]
    public void FindInAllDomains_ReturnsAllRecord()
    {
        //Arrange
        var configuratorMock = MockRepository.GenerateStub<IList<ISearchConfigurator>>();
        var searchMock = MockRepository.GenerateMock<ISearcher<NativeDs>>();
        var searchRestul = new SearchResult<NativeDs>(searchMock, configuratorMock);

        //Act
        searchRestul.FindInAllDomains(); // calling test fail here

        //Assert
        searchMock.AssertWasCalled(x => x.SearchAll(null), opt => opt.IgnoreArguments());
    }

错误是: System.NullReferenceException : 对象引用未设置为对象的实例。

【问题讨论】:

    标签: c# unit-testing mocking


    【解决方案1】:

    试试这个...

    var list = new List<ISearchConfigurator>
              (from x in Enumerable.Range(1, 100)
               select MockRepository.GenerateMock<ISearchConfigurator>()
              );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-07
      • 1970-01-01
      相关资源
      最近更新 更多