【问题标题】:Generate test data in Raven DB在 Raven DB 中生成测试数据
【发布时间】:2012-06-19 02:20:30
【问题描述】:

我正在寻找在 Raven DB 中生成测试数据的首选且可维护的方法。目前,我们的团队确实有办法通过 .NET 代码来实现。提供了示例。

但是,我正在寻找不同的选择。请分享。

public void Execute()
        {
            using (var documentStore = new DocumentStore { ConnectionStringName = "RavenDb" })
            {
                documentStore.Conventions.DefaultQueryingConsistency = ConsistencyOptions.QueryYourWrites;

                // Override the default key prefix generation strategy of Pascal case to lower case.
                documentStore.Conventions.FindTypeTagName = type => DocumentConvention.DefaultTypeTagName(type).ToLower();

                documentStore.Initialize();

                InitializeData(documentStore);
            }
        }

编辑: Raven-overflow 真的很有帮助。感谢您指出正确的地方。

【问题讨论】:

    标签: ravendb seed test-data


    【解决方案1】:

    尝试查看RavenOverflow。在那里,我有一个 FakeData 项目,其中包含虚假数据(硬编码和随机生成)。然后可以在我的Tests 项目或Main Website 中使用它:)

    这里有一些示例代码...

    if (isDataToBeSeeded)
    {
        HelperUtilities.CreateSeedData(documentStore);
    }
    

    ....

    public static void CreateSeedData(IDocumentStore documentStore)
    {
        Condition.Requires(documentStore).IsNotNull();
    
        using (IDocumentSession documentSession = documentStore.OpenSession())
        {
            // First, check to make sure we don't have any data.
            var user = documentSession.Load<User>(1);
            if (user != null)
            {
                // ooOooo! we have a user, so it's assumed we actually have some seeded data.
                return;
            }
    
            // We have no users, so it's assumed we therefore have no data at all.
            // So lets fake some up :)
    
            // Users.
            ICollection<User> users = FakeUsers.CreateFakeUsers(50);
            StoreFakeEntities(users, documentSession);
    
            // Questions.
            ICollection<Question> questions = FakeQuestions.CreateFakeQuestions(users.Select(x => x.Id).ToList());
            StoreFakeEntities(questions, documentSession);
    
            documentSession.SaveChanges();
    
            // Make sure all our indexes are not stale.
            documentStore.WaitForStaleIndexesToComplete();
        }
    }
    

    ....

    public static ICollection<Question> CreateFakeQuestions(IList<string> userIds, int numberOfFakeQuestions)
    {
    .... u get the idea .....
    }
    

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2023-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-08
      相关资源
      最近更新 更多