gpt4 book ai didi

sql-server-2000 - 我可以在 Nunit 中创建数据库死锁测试吗?

转载 作者:行者123 更新时间:2023-12-04 06:55:58 25 4
gpt4 key购买 nike

在这个 asp.net 中,我正在清理可能会发生死锁。我想确保代码正确处理它们,所以我正在尝试编写触发死锁的 NUnit 测试......

DAO 按实体拆分。每个实体都有一组测试,这些测试被 Startup() 和 Teardown() 方法包围,这些方法创建一个事务范围,然后在测试完成后将其回滚。这对其他一切都很有效,但对死锁完全没用。

如何使用可以可靠重现的 TransactionScope 和 SQL2000(即涉及 MSDTC)设置和运行“死锁”测试?
更多细节:我知道有一种情况,如果两个用户使用不同的特定数据值调用两个函数,那么可能会导致死锁。我怎样才能在 NUNIT 中模拟这个 - 并使死锁总是发生?

是的,我确实从“为什么不首先阻止死锁发生”的行动计划开始,但我无法控制可能发生死锁的代码 - 我只是调用函数,它们可能会死锁.

最佳答案

如果死锁导致抛出异常,则需要使用 Mock 对象来模拟抛出的异常。

基本思想是你告诉你的 Mock Object 框架(我喜欢 TypeMock )抛出一个异常,就像这样:

MockObject mo = MockManager.MockObject(typeof(MyDeadlockException));
mock.ExpectAndThrow("MyMethod", (MyDeadlockException)mo.Object);

这个想法与其他模拟框架基本相同。

关于sql-server-2000 - 我可以在 Nunit 中创建数据库死锁测试吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/178876/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com