草庐IT

static_assert

全部标签

c# - 如何使用 Fluent Assertions 来测试不等式测试中的异常?

我正在尝试使用C#中的FluentAssertions为大于覆盖的运算符编写单元测试。如果任一对象为空,则此类中的大于运算符应该抛出异常。通常在使用FluentAssertions时,我会使用lambda表达式将方法放入操作中。然后我会运行操作并使用action.ShouldThrow.但是,我不知道如何将运算符放入lambda表达式中。我不想使用NUnit的Assert.Throws(),Throws约束,或[ExpectedException]属性的一致性。 最佳答案 你可以试试这个方法。[Test]publicvoidGrea

c# - 什么是 "static"类?

在C#中有什么区别:publicstaticclassClassName{}和:publicclassClassName{} 最佳答案 首先,对一个回答的评论询问“静态”是什么意思。在C#术语中,“静态”意味着“与类型本身相关,而不是类型的实例”。您使用类型名称而不是引用或值访问静态成员(来自另一个类型)。例如://Staticmethod,socalledusingtypenameGuidsomeGuid=Guid.NewGuid();//Instancemethod,calledonavaluestringasString=so

时间:: console application - static methods

为什么在C#中,控制台应用程序,在默认的“程序”类中,所有方法都必须是静态的staticvoidMain(string[]args) 最佳答案 成员函数不必是静态的;但如果它们不是静态的,则需要您实例化一个Program对象才能调用成员方法。使用静态方法:publicclassProgram{publicstaticvoidMain(){System.Console.WriteLine(Program.Foo());}publicstaticstringFoo(){return"Foo";}}没有静态方法(换句话说,要求您实例化Pr

c# - 为什么 Assert.IsInstanceOfType(0.GetType(), typeof(int)) 会失败?

我是单元测试的新手,使用Microsoft.VisualStudio.TestTools.UnitTesting;0.GetType()其实就是System.RuntimeType,那么我需要写什么样的测试才能通过Assert.IsInstanceOfType(0.GetType(),typeof(int))?---跟进,这是我自己的用户错误...Assert.IsInstanceOfType(0,typeof(int)) 最佳答案 将调用更改为以下内容Assert.IsInstanceOfType(0,typeof(int));第

c# - C# 控制台应用程序中的 public static void Main() 和 private static void Main() 有什么区别?

有什么区别publicstaticvoidMain()和privatestaticvoidMain()在C#控制台应用程序中?特别是因为它与Main()方法有关(我了解public和private之间的区别)。 最佳答案 要作为应用程序的起点,Main方法不需要是public。如果您确实决定将其设为public,则它可能会被其他类或程序集调用。通常您不需要这样做,因此您可以将其设为private。将其设为public的一个可能用例是允许自动化测试调用它。 关于c#-C#控制台应用程序中的

c# - 故障排除 "program does not contain a static ' 主要方法“当它清楚地...?

我的MSVisualC#程序编译和运行都很好。我关闭MSVisualC#开始做生活中的其他事情。我重新打开它并(在执行任何其他操作之前)转到“发布”我的程序并收到以下错误消息:ProgramC:\myprogram.exedoesnotcontainastatic'Main'methodsuitableforanentrypoint嗯?是的,确实如此……并且在15分钟前一切正常。当然,我可以相信我在关闭它之前不小心撞到了什么东西或做了什么……但是什么?我该如何解决这个问题?我的Program.cs文件如下所示:usingSystem;usingSystem.Collections.Ge

c# - 错误消息 "CS5001 Program does not contain a static ' Main' 适合入口点的方法”

无法执行以下代码错误CS5001程序不包含适合入口点的静态“Main”方法这个错误信息是什么意思?classProgram{staticasyncTaskMainAsync(string[]args){Account.accountTestaccountTest=newAccount.accountTest();boolresult=awaitaccountTest.CreateAccountAsync();}} 最佳答案 这意味着您目前没有适合您的应用程序的入口点。该代码几乎适用于C#7.1,但您确实需要在项目文件中明确启用C#7

c# - NUnit 3.0 和 Assert.Throws

我正在使用NUnit3.0编写一些单元测试,与v2.x不同,ExpectedException()已从库中删除。基于this答案,我绝对可以看到试图在测试中具体捕获人们期望他们的系统抛出异常的地方的逻辑(而不是仅仅说“测试中的任何地方”)。但是,我倾向于非常明确地说明我的Arrange、Act和Assert步骤,这使它成为一个挑战。我曾经做过这样的事情:[Test,ExpectedException(typeof(FormatException))]publicvoidShould_not_convert_from_prinergy_date_time_sample1(){//Arra

c# - Assert.Are Equal 和 Assert.AreSame 之间的区别?

Assert.AreEqual和Assert.AreSame有什么区别? 最佳答案 这意味着AreSame()检查它们是否是完全相同的对象-如果引用指示内存中的相同对象。AreEqual()检查对象是否具有相同的类型和值。相同的对象可以存在于内存中的两个不同位置。 关于c#-Assert.AreEqual和Assert.AreSame之间的区别?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/que

c# - 为什么 Assert.AreEqual(T obj1, Tobj2) 会因相同的字节数组而失败

我在下面的代码段中有两个相同的字节数组://////AtestforBytes///[TestMethod()]publicvoidBytesTest(){byte[]bytes=Encoding.UTF8.GetBytes(Properties.Resources.ExpectedPacketData);TransferEventArgstarget=newTransferEventArgs(bytes);byte[]expected=Encoding.UTF8.GetBytes(Properties.Resources.ExpectedPacketValue);byte[]actu