猿问

动力学和尝试/捕捉

我有一些代码,我正在编写单元测试。所以我需要检查,是否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();

这段代码是不是看起来很尴尬?也许我可以做得更好?


慕仙森
浏览 151回答 1
1回答

BIG阳

使用Assert.Throws,断言特定表达式抛出异常,如下所示:// NUnitAssert.Throws<RuntimeBinderException>(() => serviceResult.Result.LOCATION_AMOUNT);Assert.Throws<RuntimeBinderException>(() => serviceResult.Result.VAT_AMOUNT);&nbsp; &nbsp;&nbsp;Assert.Throws<RuntimeBinderException>(() => serviceResult.Result.LOCATION_AMOUNT);// MSTestExceptionAssert.Throws(() => serviceResult.Result.LOCATION_AMOUNT);ExceptionAssert.Throws(() => serviceResult.Result.VAT_AMOUNT);&nbsp; &nbsp;&nbsp;ExceptionAssert.Throws(() => serviceResult.Result.LOCATION_AMOUNT);
随时随地看视频慕课网APP
我要回答