0

如何使用 Rhino Mocks 模拟 ConfigurationCollection。

我需要创建一个包含 1 个元素的 Expected ConfigurationCollection,以测试我的配置是否包含该元素。

谢谢。

注意:我的 ConfigurationCollection 继承自 IEnumerable。

public interface ICapalConfiguration
{
    ICapalRepositoryConfigurationCollection Repositories { get; }
    ICapalServiceConfigurationCollection Services { get; }
}

public interface ICapalRepositoryConfigurationCollection : IEnumerable
{
    string DefaultConnectionString { get; set; }
    ICapalRepositoryConfiguration GetElement(string name);
}

public interface ICapalRepositoryConfiguration
{
    string Name { get; set; }
    string ConnectionStringName { get; set; }
}


    [TestMethod]
    public void Can_Get_One_Repository()
    {
        var config = MockRepository.GenerateMock<ICapalConfiguration>();
        var expected_repositories = MockRepository.GenerateMock<ICapalRepositoryConfigurationCollection>();
        var expected_repository = MockRepository.GenerateMock<ICapalRepositoryConfiguration>();

        config.Expect(p => p.Repositories).Return(expected_repositories).Repeat.Any();
        config.Expect(p => p.Repositories.GetElement("ArticleRepository")).Return(expected_repository);

        var config_repositories = config.Repositories;
        var config_repository = config.Repositories.GetElement("ArticleRepository");

        config.VerifyAllExpectations();

        Assert.IsNotNull(config);
        Assert.IsNotNull(config_repositories);
    }
4

1 回答 1

1

你的系统在测试什么?查看您的测试,我认为它是 ICapalConfiguration 的实现,因此您不应该嘲笑它。

我也倾向于不模拟简单的数据结构,例如集合。只需使用真实的东西。

于 2009-01-11T16:17:12.813 回答