单元测试RavenDB

nic*_*ick 29 unit-testing ravendb

在我的单元测试中,我设置每个测试都有一个完全空的IDocumentSession.我是这样做的:

[SetUp]
public void SetUp()
{
  _store = new EmbeddableDocumentStore
  {
     RunInMemory = true
  };

  _store.Initialize();

  Session = _store.OpenSession();
}
Run Code Online (Sandbox Code Playgroud)

但我认为这可能是我的测试有点慢的原因.我想知道是否有一个简单的命令来删除数据库中的所有文档.

我想要知道的是:如果我能做到这一点,以及它是否会提高性能.

Aye*_*ien 25

这是使用ravendb进行单元测试的推荐方法不推荐用于生产基本上在内存模式下运行如果你觉得这很慢,尝试分析并找出究竟是什么减慢了速度


Dan*_*ang 21

尝试使用RunInUnreliableYetFastModeThatIsNotSuitableForProduction = true.

        var _store = new EmbeddableDocumentStore()
        {
            Configuration =
                {
                    RunInUnreliableYetFastModeThatIsNotSuitableForProduction = true,
                    RunInMemory = true,
                }
        };
Run Code Online (Sandbox Code Playgroud)

  • 我以为你是开玩笑的.尽管可能有点差别,但似乎没有太大的区别 (2认同)

Wya*_*ett 6

那里昂贵的电话是_store.Initialize()- 你强迫RavenDb在每次测试时都站起来一个新的数据库.在大多数情况下,每个测试套件运行一个数据库都可以运行

另一种选择是使用nature或RavenDb的ID来命名测试.如果真正的问题是重复的键错误和其他工程方面的事情,这是非常方便,所以你没有一个讨厌的清理.