xUnit - 测试抛出两个不同异常之一

问题描述 投票:0回答:1

我正在努力实现以下目标:

Type exceptionDuplicate = UseInMemoryDb ? typeof(ArgumentException) : typeof(DbUpdateException);
Assert.Throws<exceptionDuplicate> (() => context.SaveChanges());

这不起作用,因为 Assert.Throws 需要类型,而不是 <> 中的变量。有没有办法做到这一点?

c# xunit xunit.net
1个回答
0
投票

那个

Assert
类有一个重载,需要一个
Type
作为第一个参数见 GitHub.

public static Exception Throws(Type exceptionType, Func<object> testCode)

您的代码如下所示。

Type exceptionDuplicate = UseInMemoryDb ? typeof(ArgumentException) : typeof(DbUpdateException);
Assert.Throws(exceptionDuplicate, () => context.SaveChanges());
© www.soinside.com 2019 - 2024. All rights reserved.