Tag: unit testing

为ASP .NET MVC创建unit testing的问题

我正在为我的ASP .NET MVC Controller类创建一些unit testing,我遇到了一些非常奇怪的错误: 我的控制器代码如下: [HttpPost] [ValidateAntiForgeryToken] public ActionResult Delete(JournalViewModel journal) { var selectedJournal = Mapper.Map(journal); var opStatus = _journalRepository.DeleteJournal(selectedJournal); if (!opStatus.Status) throw new System.Web.Http.HttpResponseException(new HttpResponseMessage(HttpStatusCode.NotFound)); return RedirectToAction(“Index”); } 我的测试代码如下: [TestMethod] public void Delete_Journal() { // Arrange // Simulate PDF file HttpPostedFileBase mockFile = Mock.Create(); Mock.Arrange(() => mockFile.FileName).Returns(“Test.pdf”); Mock.Arrange(() => mockFile.ContentLength).Returns(255); // Create view […]

validationunit testing中集合/项集的完整映射

我正在使用xUnit.net,AutoFixture和SemanticComparison,并希望validation映射的结果。 在个别项目层面,我很好 。 特定 这些项共享一个识别密钥 我想对两边的值元素进行比较 我不关心订购(并且不希望我的Assertion在重新订购时破坏) 如何使用尽可能多的OOTB组件validation每个输入项是否以DAMP但DRY方式映射到一个且仅一个输出项? 比赛时间: class Input { public string Name, Description; } class Output { public string Name, Description, IgnoreThisField; } 骨架测试: [Theory,AutoData] void MappingWorks( Mapper sut, Input[] inputs) { var outputs = sut.Map( inputs); // TODO assert that every input is mapped // TODO assert that we have have […]

安装Visual Studio 11 beta后,不再通过Visual Studio 2010执行测试

我用Visual-Studio-2010 Ultimate创建了许多TestProjects。 所有测试都成功执行(它们是简单的unit testing)。 现在我安装了Visual-Studio-11 beta ,我意识到它们不是通过VS-2010执行的。 我也从命令行通过MSTest(2010)尝试了它,没有成功。 测试执行似乎开始(并且永远不会结束)但是在没有报告任何错误的情况下不执行测试。 通过VS-11一切正常。 有没有人有同样的问题?

如何unit testingViewComponent.Invoke()?

在ViewComponent对象中, HttpContext和User是只读属性。 如何对这样的组件进行unit testing? 我正在使用MSTest Freamwork。 以下属性用于我的代码中 曲奇饼 会议 用户(System.Security.Principal) public ViewViewComponentResult Invoke() { var vm = new SummaryViewModel(); if (User.Identity is ClaimsIdentity identity && identity.IsAuthenticated) { vm.IsAuthenticated = true; vm.UserName = identity.Claims.FirstOrDefault(c => c.Type == “UserName”).Value; vm.PhotoUrl = identity.Claims.FirstOrDefault(c => c.Type == “FacePicture”).Value; } return View(vm); } [TestMethod] public void UserSummaryVcTest() { var component […]

Moq是一个匿名类型的函数

我正试图嘲笑这种方法 Task GetResultAsync(Func transformFunc) 像这样 iMock.Setup(m => m.GetResultAsync(It.IsAny<Func>())).ReturnsAsync(new { isPair = false }); 测试执行调用的方法将匿名类型传递给generics参数,如下所示 instance.GetResultAsync(u => new {isPair = u == “something” }) //dont look at the function return because as generic could have diferent implementations in many case Moq永远不会将我的GetResultAsync方法与发送的参数匹配。 我正在使用Moq 4

MSTest无法找到assembly体

我正在使用MSTest 我使用命令mstest /testsettings:local.Testsetting /testcontainer:folder\obj\Debug\test.dll 这是输出, 运行具有以下问题:警告:测试运行部署问题:程序集或模块’Microsoft.Practices。 未找到由测试容器’test.dll’直接或间接引用的Prism。 警告:测试运行部署问题:未找到测试容器“test.dll”直接或间接引用的程序集或模块“Project.Common.dll”。 警告:测试运行部署问题:未找到测试容器“test.dll”直接或间接引用的程序集或模块“Project.Infrastructure.dll”。 警告:测试运行部署问题:程序集或模块’Microsoft.Practices。 未找到由测试容器’test.dll’直接或间接引用的Prism。 我能做些什么让MSTest运行良好。

比较XML文件是否相同的最佳方法是什么?

我正在使用.NET 2.0,最近的代码更改使我之前的Assert.AreEqual调用失效(它比较了两个XML字符串)。 在新的代码库中,只有一个XML元素实际上是不同的,所以我希望对所有其他元素进行比较会得到我想要的结果。 比较需要以编程方式完成,因为它是unit testing的一部分。 起初,我正在考虑使用几个XmlDocument实例。 但后来我发现了这个: http : //drowningintechnicaldebt.com/blogs/scottroycraft/archive/2007/05/06/comparing-xml-files.aspx 看起来它可能会起作用,但我对Stack Overflow反馈很感兴趣,以防有更好的方法。 如果可能的话,我想避免为此添加另一个依赖项。 类似的问题 NUnit是否有XML断言? 你会如何比较两个XML文档?

CreateMany与种子有什么关系?

具有T seed参数的CreateMany重载实际上做了什么? 我试图播种,但种子似乎对创建的对象没有影响。 例如,我期待如果我的种子具有string类型的属性,那么: 字符串值将用于在所有新创建的对象中填充该属性 或者在所有新创建的对象中设置该属性时,字符串值将用作前缀

使用Moles在unit testing中模拟会话变量

方法我是unit testing检查会话变量之类的 if(Session[“somevar”] != null) { // rest of the code } 在我的测试中,由于Session为null,因此无法摆脱此问题,因此抛出null引用exception。 为了绕过这个,我试着像下面这样嘲笑但没有运气 System.Web.Moles.MHttpContext.AllInstances.SessionGet = (HttpContext cntx) => { return (HttpSessionState)cntx.Session[“somevar”]; } 我甚至尝试过这里提到的方法来模拟HttpContext然后在下面做 HttpContext.Current = new HttpContext(workerRequest); HttpContext.Current.Session[“somevar”] = value; 但再次没有运气。 这一次,虽然HttpContext.Current不是null但是HttpContext.Current.Session因此抛出null refexception。 任何想法如何模拟这个/在我的测试中传递这个[不使用任何外部DLL或主要代码更改。 对不起,但是不能这样做]。 非常感谢和帮助你。

Xamarin(Android)unit testing在Visual Studio 2017中

我正在使用Visual Studio 2017来开发Xamarin Android应用程序。 我想只添加逻辑的简单unit testing。 为此,我尝试使用unit testing添加“unit testing应用程序(Android)”或“类库(Android)”项目,但没有一个工作。 unit testing应用程序(Android) 我将新项目添加到我的“unit testing应用程序(Android)”类型的解决方案中。 生成的项目包含带有样本测试的TestsSample类,但我不知道如何启动它们。 我安装了ReSharper,但是当右键单击项目/类时,我没有运行测试的选项。 当我进入“测试” – >“运行” – >“所有测试”时,解决方案已经构建,但没有更多的事情发生。 带有nUnit的类库(Android) 另一个试验是在解决方案中添加“类库(Android)”类型的新项目。 之后,我安装了nUnit nuget软件包( install-package nunit安装包’nunit.3.6.1’,关于项目’MoneyBack.Tests’,目标是’MonoAndroid,Version = v6.0’),安装成功。 我添加了以下类: using NUnit.Framework; namespace MoneyBack.Tests { [TestFixture] public class Class1 { [Test] public void SampleTest() { Assert.IsTrue(true); } } } 现在,当右键单击测试项目时,我看到ReSharper的选项“Run Unit Tests”,所以我点击它并得到以下exception: 难道我做错了什么 ? 或者这是VS2017的问题? 我不知道我是否应该安装VS2015或者有一些解决方案。 […]