猿问

为什么 Respawn 会擦除我的整个数据库?

我正在按照此处概述的类似范例进行皮下检查。调用Respawn的重置正在擦除我的整个数据库。

我设置了一个检查点,然后重置它。我尝试通过静态类、测试夹具和测试类实现的抽象类以及测试本身进行重置,无论是在测试之前还是之后,在所有情况下,它都会擦除整个数据库。

我用于创建事件的连接字符串与我用于重置事件的连接字符串相同,它是一个 SQL 数据库。

[Theory, AutoData]

public async void Should_GetAnEvent(Create.Parameter eventParam)

{

    //Arrange

    var newCheckpoint = new Checkpoint();

    var eventId = await CreateEvent(eventParam);


    //Act

    var result = await Mediator.Send(new GetEventRequest(eventId));


    //Assert

    //Some asserts here

    await newCheckpoint.Reset(ConnectionString.Value.ConnectionString);

}

我期望检查点保存数据库的快照,可以这么说,然后能够恢复到它。相反,它被完全擦除。测试通过。


慕桂英3389331
浏览 101回答 3
3回答

交互式爱情

重生不会还原到已知快照,而是擦除它。这是设计使然。我误解了他的图书馆是做什么的。

慕标琳琳

这也完全让我措手不及。Respawn不会拍摄快照,即使命名“检查点”表明情况并非如此。它基本上擦掉了一切。以下是作者对同一内容的回复:https://github.com/jbogard/Respawn/issues/53#issuecomment-459643494

Smart猫小萌

我目前正在编写一个库,它完全可以执行您想要的功能 - 将数据还原到其初始状态。它是重新播种的。如果问题仍然相关,请检查一下。库仍处于活跃的开发阶段,但我已经在我的一些项目中使用它,效果很好。
随时随地看视频慕课网APP
我要回答