c# - 如何将 Assert.Throws 与 property get 一起使用?

标签 c# exception nunit assert

我希望将 Assert.Throws 与属性 get 一起使用。

例如

object shouldFail = myobj[fakeField];

我的尝试,虽然不好,但有助于证明我的需求。

Assert.Throws<MyException>(() => object shouldFail = myobj[fakeField]);
Assert.Throws<MyException>(() => myobj[fakeField]);

我得到的语法错误是 只有赋值、调用、自减和新对象表达式可以用作语句。我明白那个。所以我在没有 try/catch 的情况下问,如何测试例如中该行代码的异常?上面?

我知道[ExpectedException(typeof(MyException))]

最佳答案

你不能真正在 lambda with 表达式中做到这一点,因为你需要吃掉返回值。尝试使用语句 block 代替:

Assert.Throws<MyException>(() => { object shouldFail = myobj[fakeField];});

注意:是not recommendedget 抛出...

关于c# - 如何将 Assert.Throws 与 property get 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23463909/

相关文章:

unit-testing - 单元测试 MonoTouch 项目的最佳方法?

c# - 当参数实现通用接口(interface)时,NUnit 通用测试夹具不显示

C# 模拟测试 - Moq 列表不能是 'foreach',告诉 'NullReferenceException'

c# - 使用 Entity Framework Core 进行全文搜索

c# - 从 UWP C# 应用程序使用 pinvoke 调用 LoadLibrary

c# - Exception.Message 与 Exception.ToString()

.net - WP7 App部署后立即崩溃

python - 处理来自 sys.exc_info() 的回溯对象时的适当注意和安全

c# - ConfigurationManager 没有按预期保存值

c# - 故障响应包含一个字符串值,其中需要一个整数