assert_nothing_raised
全部标签 我应该在什么时候对代码契约进行调试断言,反之亦然?我想检查一种方法的先决条件,但我很困惑要选择一个而不是另一个。我有单元测试,我想在其中测试失败场景并期望出现异常。在同一个方法上使用Debug.Assert和Code契约是一种好的做法吗?如果是这样,代码的编写顺序应该是怎样的?Debug.Assert(parameter!=null);Contract.Requires(parameter!=null,"parameter");或Contract.Requires(parameter!=null,"parameter");Debug.Assert(parameter!=null);背后
我正在尝试使用C#中的FluentAssertions为大于覆盖的运算符编写单元测试。如果任一对象为空,则此类中的大于运算符应该抛出异常。通常在使用FluentAssertions时,我会使用lambda表达式将方法放入操作中。然后我会运行操作并使用action.ShouldThrow.但是,我不知道如何将运算符放入lambda表达式中。我不想使用NUnit的Assert.Throws(),Throws约束,或[ExpectedException]属性的一致性。 最佳答案 你可以试试这个方法。[Test]publicvoidGrea
我是单元测试的新手,使用Microsoft.VisualStudio.TestTools.UnitTesting;0.GetType()其实就是System.RuntimeType,那么我需要写什么样的测试才能通过Assert.IsInstanceOfType(0.GetType(),typeof(int))?---跟进,这是我自己的用户错误...Assert.IsInstanceOfType(0,typeof(int)) 最佳答案 将调用更改为以下内容Assert.IsInstanceOfType(0,typeof(int));第
我正在使用NUnit3.0编写一些单元测试,与v2.x不同,ExpectedException()已从库中删除。基于this答案,我绝对可以看到试图在测试中具体捕获人们期望他们的系统抛出异常的地方的逻辑(而不是仅仅说“测试中的任何地方”)。但是,我倾向于非常明确地说明我的Arrange、Act和Assert步骤,这使它成为一个挑战。我曾经做过这样的事情:[Test,ExpectedException(typeof(FormatException))]publicvoidShould_not_convert_from_prinergy_date_time_sample1(){//Arra
Assert.AreEqual和Assert.AreSame有什么区别? 最佳答案 这意味着AreSame()检查它们是否是完全相同的对象-如果引用指示内存中的相同对象。AreEqual()检查对象是否具有相同的类型和值。相同的对象可以存在于内存中的两个不同位置。 关于c#-Assert.AreEqual和Assert.AreSame之间的区别?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/que
我在下面的代码段中有两个相同的字节数组://////AtestforBytes///[TestMethod()]publicvoidBytesTest(){byte[]bytes=Encoding.UTF8.GetBytes(Properties.Resources.ExpectedPacketData);TransferEventArgstarget=newTransferEventArgs(bytes);byte[]expected=Encoding.UTF8.GetBytes(Properties.Resources.ExpectedPacketValue);byte[]actu
您认为这是测试异常的好方法吗?有什么建议吗?Exceptionexception=null;try{//Imsurethatanexeptionwillhappenhere}catch(Exceptionex){exception=ex;}Assert.IsNotNull(exception);我正在使用MS测试。 最佳答案 我使用了几种不同的模式。大多数情况下,我会在预期会出现异常时使用ExpectedException属性。这足以满足大多数情况,但是,在某些情况下这还不够。异常可能无法捕获——因为它是由反射调用的方法抛出的——或
是否应该在完成所有对象后将它们设置为null(VB.NET中的Nothing)?我知道在.NET中,必须释放实现IDisposable接口(interface)的任何对象实例以释放一些资源,尽管对象在被释放后仍然可以是某种东西(因此isDisposed属性),所以我假设它仍然可以驻留在内存中或至少部分驻留?我也知道,当一个对象超出范围时,它会被标记为收集准备好进行下一次垃圾收集器处理(尽管这可能需要时间)。考虑到这一点,将其设置为null会加快系统释放内存的速度,因为它不必计算出它不再在范围内,它们是否有任何不良副作用?MSDN文章从不在示例中这样做,目前我这样做是因为我不能看到伤害。
如何使用Assert.Throws断言异常类型和实际消息措辞?像这样:Assert.Throws(()=>user.MakeUserActive()).WithMessage("Actualexceptionmessage")我正在测试的方法抛出多条相同类型的消息,但消息不同,我需要一种方法来测试是否根据上下文抛出正确的消息。 最佳答案 Assert.Throws返回抛出的异常,让您可以对异常进行断言。varex=Assert.Throws(()=>user.MakeUserActive());Assert.That(ex.Mess
我尝试将interface{}转换为结构person...packagemainimport("encoding/json""fmt")funcFromJson(jsonSrcstring)interface{}{varobjinterface{}json.Unmarshal([]byte(jsonSrc),&obj)returnobj}funcmain(){typepersonstruct{NamestringAgeint}json:=`{"Name":"James","Age":22}`actualInterface:=FromJson(json)fmt.Println("actu