为了账号安全,请及时绑定邮箱和手机立即绑定

动力学和尝试/捕捉

动力学和尝试/捕捉

C#
慕仙森 2021-11-14 15:07:38
我有一些代码,我正在编写单元测试。所以我需要检查,是否serviceResult.Result.LOCATION_COUNT存在以及其余 3 个字段。我需要确保它们都不存在。ServiceResult.Result是动态类型。如果其中一些存在,那么我需要使测试失败。try        {            Assert.IsNull(serviceResult.Result.LOCATION_AMOUNT);        }        catch        {            try            {                Assert.IsNull(serviceResult.Result.OGM_AMOUNT);            }            catch            {                try                {                    Assert.IsNull(serviceResult.Result.VAT_AMOUNT);                }                catch                {                    try                    {                        Assert.IsNull(serviceResult.Result.TOTAL_AMOUNT);                    }                    catch                    {                        Assert.AreEqual(0, 0);                    }                }            }        }        Assert.Fail();这段代码是不是看起来很尴尬?也许我可以做得更好?
查看完整描述

1 回答

?
BIG阳

TA贡献1859条经验 获得超6个赞

使用Assert.Throws,断言特定表达式抛出异常,如下所示:


// NUnit

Assert.Throws<RuntimeBinderException>(() => serviceResult.Result.LOCATION_AMOUNT);

Assert.Throws<RuntimeBinderException>(() => serviceResult.Result.VAT_AMOUNT);    

Assert.Throws<RuntimeBinderException>(() => serviceResult.Result.LOCATION_AMOUNT);

// MSTest

ExceptionAssert.Throws(() => serviceResult.Result.LOCATION_AMOUNT);

ExceptionAssert.Throws(() => serviceResult.Result.VAT_AMOUNT);    

ExceptionAssert.Throws(() => serviceResult.Result.LOCATION_AMOUNT);


查看完整回答
反对 回复 2021-11-14
  • 1 回答
  • 0 关注
  • 143 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信