我正忙着用asp.net web api设计一个web服务.我想开始对每个控制器进行单元测试. 到目前为止,这是我的测试类:[TestClass] public class MyDevicesControllerTest {[TestMethod] public void TestValidUser(){MyDeviceController controller = new MyDeviceController();var result = controller.Get();}[TestMethod]public void TestInvalidUser(){MyDeviceController controller = new MyDeviceController(); v...
我一直在做一些使用TDD开发的测试;即先写下我的考试. 我一直习惯于使用这种命名约定来编写测试.MethodName_DoesWhat_WhenTheseConditions这些对于单元测试非常有用,因为我知道方法名称是什么,但是做TDD我不知道方法名称.例如,我有一个用户故事说明"As a user, I can return the total number of records in the database"现在只是看看这个,我立刻知道我会有很多方法,层. 但我现在不知道TDD中这些方法的名称,所以尝试为测试名称添加...
我想对WiX安装程序的C#CustomAction函数进行快速测试.即从我的C#WinForms应用程序中调用它们. 因为它已知函数的格式为ActionResult MyAction(Session s) 但是如何创建会话参数以将其传递给函数? 像这样Session session = ? <--- no constructor session["VAR"]="123"; ActionResult = MyAction(session);解决方法:会话对象由Windows Installer初始化,并在运行时填充值.但你不必依赖它.尝试重新构建代码,以便可以独立测试其功能部...
首先,我熟悉单元测试模拟的概念,我正在根据TDD编写应用程序. 我有一个方法,我需要读取一个文件.读入文件:using (var webshopXmlFileStream = StreamFactory.Create(importFile)){// Opens a reader that will read the Xml file.using (var reader = XmlReader.Create(webshopXmlFileStream)){// Read the nodes "Node" and "ArticleGroup" recursively.var nodes = XmlReaderUtils.EnumerateAxis(reader, new[] { "Node", "Artic...
我正在尝试使用SmtpClient.Send以编程方式发送电子邮件.我正在尝试发送电子邮件时收到AuthenticationException.这是因为证书验证程序失败. 我知道证书是正确的,但我也理解,信任所有证书并不安全,就像这样做的建议:ServicePointManager.ServerCertificateValidationCallback += (sender, certificate, chain, sslPolicyErrors) => { return true; };所以我想知道测试Thumbprint是否有足够的安全性,如下:ServicePointManager.Serve...
我计划使用Moq对我的Azure服务结构应用程序进行单元测试.我在这里看到了一些例子https://github.com/Azure-Samples/service-fabric-dotnet-web-reference-app/blob/master/ReferenceApp/Inventory.UnitTests/InventoryServiceTests.cs.我看到的测试似乎实际上写的是可靠的字典而不是嘲笑.有没有办法模拟可靠字典中的添加/删除?我如何对下面的内容进行单元测试public async Task<bool> AddItem(MyItem item) {var items = await St...
我创建了一个会话中间件,想要测试它.所以我使用TestServer进行测试. 测试代码如下:using System.Linq; using System.Threading.Tasks; using ComponentsTest.StartUps; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.TestHost; using NUnit.Framework;namespace ComponentsTest.IntegrationTest {[TestFixture]public class SessionMwTest{[SetUp]public void Setup(){_server = new TestServer(_hostBuilder)...
我有一个项目,我在其中接收对象作为DTO,我正在将它们转换为View-Models.为了进行这种转换,我决定制作自定义转换器,进行一些计算,以便从DTO属性转换为View-Models.在所有这些准备好之后,转换工作正常,我想在转换中添加一些单元测试以使其更稳定(我知道这不尊重TDD,但这是我设法做的). 当我想要测试来验证两个View-Models的相等性时,就会出现问题Assert.AreEqual(expected, actual);因为View-Models都没有定义Equals方法,所以它们永远...
我有一个解决方案,其中我有一个数据项目,其中包含从现有数据库生成的EF6 .edmx文件.我将实体拆分为一个单独的实体项目,并有一个引用它们的存储库项目. 我添加了一个带有一些常用方法的BaseRepository,并希望对它进行单元测试.班级的顶端看起来像这样……public class BaseRepository<T> : BaseRepositoryInterface<T> where T : class {private readonly MyEntities _ctx;private readonly DbSet<T> _dbSet;public BaseRepository(...
我已经读过你需要定义接口以模拟类型,但我不知道如何解释它.例如,要模拟FileSystem,我可以将对象传递给方法,然后在从我的测试调用时模拟它,而不是直接调用某些I / O方法.为什么单元测试示例(如下面的SO问题),使用接口?void DoIt(IZipper zipper, IFileSystem fileSystem, IDllRunner runner) {string path = zipper.Unzip(theZipFile);IFakeFile file = fileSystem.Open(path);runner.Run(file); }难道我不能简单地使用相应类型的...
我有一个WebAPI,它使用自定义ExceptionHandler来处理所有异常.如何对此CustomExceptionHandler进行单元测试.任何领导都会有所帮助public class CustomExceptionHandler : ExceptionHandler {public override void Handle(ExceptionHandlerContext context){try{context.Result = new ResponseMessageResult(context.Request.CreateResponse(HttpStatusCode.InternalServerError, context.Exception));}catch (Exception){base.Hand...
人们如何为ASP MVC运行自动化测试? 目前我们正在使用本机Visual Studio单元测试并在一台机器上线性运行它们.它们目前太慢而无法使用. 切换到nunit?使用Incredibuild XGE分发单元测试?有没有尝试过这些或有其他想法? 谢谢.解决方法:MSTest的问题不在于运行速度本身,而在于测试环境本身.您可以使用Resharper运行MSTest测试,它们非常快速.我的测试是针对存储库接口运行的,我在调用控制器时模拟了内存存储库. 也就是说,你的控制器测...
我正在使用MsTest V2 framewrok进行测试.我有测试自动化框架(TAF)项目和测试项目.测试从TAF继承的项目,仅包含测试.在TAF中我有一个类,其中包含应该在所有测试之前运行的方法,但它根本不起作用.顺便说一下BeforeTest方法工作正常.public class TestBase {[AssemblyInitialize]public static void BeforeClass(TestContext tc){Console.WriteLine("Before all tests");}[TestInitialize]public void BeforeTest(){Console.WriteLine(...
从这个问题开始,我正在为我的项目(here)设置AppVeyor,我的.NET Core测试只显示在控制台输出中,但不显示在Tests窗口中. 这是AppVeyor项目的链接:ci.appveyor.com/project/Sergio0694/neuralnetwork-net 如果某些测试失败,控制台会正确显示错误,并且构建被标记为失败,但测试窗口仍为空.来自shields.io的徽章也是如此,它显示了0次总测试,即使我可以看到其中许多是从控制台输出执行的. 这是控制台输出: 这是测试窗口: 我还需要设置其...
这是我的第一个问题所以请善待!