jjzjj

c# - 如何组织单元测试而不让重构成为噩梦?

我目前组织单元测试的方式归结为以下几点:每个项目都有自己的单元测试专用项目。对于项目BusinessLayer,有一个BusinessLayer.UnitTests测试项目。对于我要测试的每个类,测试项目中都有一个单独的测试类,位于与被测类完全相同的文件夹结构和完全相同的命名空间中。对于来自命名空间BusinessLayer.Repositories的类CustomerRepository,在命名空间BusinessLayerUnitTests.Repositories中有一个测试类CustomerRepositoryTests>.每个测试类中的方法都遵循简单的命名约定MethodNa

c# - 调试 NUnit 测试的最佳方法是什么?

我的平台:带有NUnit2.2.7的VisualC#2008ExpressEdition我有一个解决方案,我的代码在一个项目中,而我的NUnit单元测试在同一解决方案的不同项目中。我一直在努力调试和单步执行NUnit测试。我在网上找到了一些建议调用以下内容的引用资料:NUnit.ConsoleRunner.Runner.Main(args);但这甚至无法编译-它有编译错误:Error1Thetypeornamespacename'Runner'doesnotexistinthenamespace'NUnit.ConsoleRunner'(areyoumissinganassemblyr

c# - 如何在 Visual Studio 的 R# 单元测试 session 窗口中通过单元测试输出彩色文本?

如何在VisualStudio的ReSharper单元测试session窗口中通过单元测试输出彩色文本。我正在使用ResharperVS插件,我认为它会生成单元测试窗口。我将其与nunit一起使用,并希望使用c#Console.Write为该窗口生成彩色文本。 最佳答案 我认为这是不可能的。您可以使用Debug.WriteLine()或Console.WriteLine()将文本写入此窗口。您想如何传递有关颜色的信息?我试了两次:HTML未解析未解析richtext格式我没有其他想法,我不认为它以某种方式起作用。

c# - 在 Xunit 中处理多个测试用例的首选方法是什么?

我已经从NUnit迁移到使用Xunit进行单元测试。使用NUnit,我将创建一个方法,其中包含具有相同结果的多个测试用例。例如,下面的NUnit单元测试测试类构造函数的验证,特别是“name”变量。名称不能为null、空或空格。该测试检查是否正确抛出ArgumentNullException:[Test][TestCase(null)][TestCase("")][TestCase("")][ExpectedException(typeof(ArgumentNullException))]publicvoidConstructor_InvalidName_ExceptionThrown

c# - NUnit 中的数据驱动测试?

在MSTest中,您可以执行以下操作:[TestMethod][DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV","testdata.csv","testdata#csv",DataAccessMethod.Sequential)]publicvoidTestSomething(){doublecolumn1=Convert.ToDouble(TestContext.DataRow["column1"]);...Assert.AreEqual(...);}NUnit2.5中的等效代码是什么?

c# - 如何进行单元测试以测试检查请求 header 的方法?

我对单元测试非常非常陌生,正在尝试为一种非常简单的方法编写测试:publicclassmyClass:RequireHttpsAttribute{publicoverridevoidOnAuthorization(AuthoizationContextfilterContext){varrequest=filterContext.HttpContext.Request;varheader=Convert.ToBoolean(request.Headers["Special-Header-Name"]);if(!(header||request.IsSecureConnection)){

C# 单元测试 (Nunit) 控制台应用程序的主要方法?

我对控制台应用程序的Main方法进行单元测试有疑问。标准签名是publicstaticvoidMain(string[]args)我希望能够进行测试以确保只传入1个参数。如果传入了多个参数,我希望测试失败。我不认为我可以用MOQ来模拟它作为它的静态方法。谁有这方面的经验?有什么想法吗?谢谢 最佳答案 在您的场景中没有什么可模拟的。静态Program.Main是一种与任何其他方法一样的方法,您可以通过调用它来测试它。staticvoid方法的问题是您只能验证它是否抛出异常或与输入参数(或其他静态成员,最终)交互。由于在string[]

c# - 为查询数据库的方法编写单元测试

我正在学习TDD,我目前有一个有效的方法,但我认为我可以尝试使用TDD重建它。该方法基本上采用6个参数,查询数据库,执行一些逻辑并返回List我的初始测试包括检查空/零定义的字符串和int方法参数值,但现在我不确定该怎么做。如果我不使用TDD,我只会创建代码来查找数据库连接字符串并打开数据库连接、查询数据库、读取值等。显然我们不能在单元测试中做到这一点,所以我在寻求如何进行的一些建议。 最佳答案 请记住,TDD不仅关乎测试,还关乎良好的设计。这种方法太多了;它违反了关注点分离原则。您已经确定了几个需要测试的区域:Themethode

c# - 使用 NUnit 进行单元测试时获得所需/正确的装配路径

我刚刚开始试验最小起订量以对我的模块进行单元测试。实际上,我必须为其编写单元测试的类使用Assembly.GetExecutingAssembly().Location在内部确定路径。但是,这在编写单元测试时不起作用,因为执行程序集的路径不同(采用单元测试程序集的路径)AppData\\Local\\Temp\\3ylnx32t.ukg\\TestApplication.Test\\assembly\\dl3\\aeb938e6\\f3664631_d982ce01。我试过了,禁用卷影复制。AppDomainSetupappDomain=newAppDomainSetup{Shadow

c# - nUnit 下的 Contains 中不区分大小写的比较

我试图断言列表包含特定字符串。由于我需要不区分大小写地评估条件,因此我使用了一个解决方法(沿着thisblogpost的东西)。但是,我想知道为什么似乎没有办法让Assert.Contains方法执行不区分大小写的比较。或者有没有办法做到这一点?(当我用谷歌搜索时,我只在nUnit的官方页面上找到了Assert.That方法的约束。) 最佳答案 无法在Assert.Contains中指定ignoreCase。我不知道这是被忽视还是有意为之。但是,您可以使用StringAssert.AreEqualIgnoringCase(left,