我找不到办法做到这一点,虽然这可以手工完成,为什么不与moq?
我有几个ActionMethods查询Controller.User的angular色是这样的 bool isAdmin = User.IsInRole("admin"); 在这种情况下方便地行事。 我开始用这样的代码对这些方法进行testing [TestMethod] public void HomeController_Index_Should_Return_Non_Null_ViewPage() { HomeController controller = new HomePostController(); ActionResult index = controller.Index(); Assert.IsNotNull(index); } 并且该testing失败,因为Controller.User未设置。 任何想法?
我正在开发一个Web API,而我想到的一个testing是,如果客户端使用物理testingID(物理testing是我正在寻找的资源)进行GET操作,并且没有find物理testing,Web API应该返回一个404状态。 现在,我为我的testing使用moq框架,我有以下代码: [TestMethod] public void then_if_physical_test_not_found_return_not_found_status() { var unitOfWork = new Mock<IUnitOfWork>(); var repository = new Mock<IRepository<PhysicalTest>>(); repository.Setup(r => r.FindById(It.IsAny<int>())).Returns(); unitOfWork.Setup(m => m.PhysicalTests).Returns(repository.Object); var pt = new PhysicalTestResource(unitOfWork.Object); HttpResponseMessage<PhysicalTest> response = pt.GetPhysicalTest(43); Assert.AreEqual(HttpStatusCode.NotFound, response.StatusCode) } 我需要返回()方法返回一个空对象,这将是实际的API方法将返回,如果找不到资源。 我尝试在Returns()方法中将null作为参数发送,但没有成功。
我正在以一种testing驱动的方式处理ASP.NET MVC解决scheme,我想使用表单身份validation将用户login到我的应用程序。 我想在控制器中结束的代码看起来像这样: FormsAuthentication.SetAuthCookie(userName, false); 我的问题是如何编写一个testing来certificate这个代码? 有没有办法来检查SetAuthCookie方法调用正确的参数? 有什么方法注入假/模拟FormsAuthentication?
我试图得到一个unit testing一个非常简单的ASP.NET MVCtesting应用程序,我已经在最新的EF4 CTP中使用代码优先的方法build立一个句柄。 我对unit testing/嘲笑等方面并不是很有经验 这是我的存储库类: public class WeightTrackerRepository { public WeightTrackerRepository() { _context = new WeightTrackerContext(); } public WeightTrackerRepository(IWeightTrackerContext context) { _context = context; } IWeightTrackerContext _context; public List<WeightEntry> GetAllWeightEntries() { return _context.WeightEntries.ToList(); } public WeightEntry AddWeightEntry(WeightEntry entry) { _context.WeightEntries.Add(entry); _context.SaveChanges(); return entry; } } 这是IWeightTrackerContext public interface IWeightTrackerContext { DbSet<WeightEntry> WeightEntries { […]
我在我的控制器操作方法中检查ModelState.IsValid ,创build一个Employee像这样: [HttpPost] public virtual ActionResult Create(EmployeeForm employeeForm) { if (this.ModelState.IsValid) { IEmployee employee = this._uiFactoryInstance.Map(employeeForm); employee.Save(); } // Etc. } 我想用我的unit testing方法使用Moq框架来嘲笑它。 我试图嘲笑它是这样的: var modelState = new Mock<ModelStateDictionary>(); modelState.Setup(m => m.IsValid).Returns(true); 但是在我的unit testing用例中抛出了一个exception。 有人可以帮我从这里出去吗?
[TestMethod] public void Home_Message_Display_Unknown_User_when_coockie_does_not_exist() { var context = new Mock<HttpContextBase>(); var request = new Mock<HttpRequestBase>(); context .Setup(c => c.Request) .Returns(request.Object); HomeController controller = new HomeController(); controller.HttpContext = context; //Here I am getting an error (read only). … } 我的基础控制器有一个重载的Initialize,得到这个requestContext。 我正试图通过这一点,但我没有做正确的事情。 protected override void Initialize(System.Web.Routing.RequestContext requestContext) { base.Initialize(requestContext); } 我在哪里可以得到更多关于使用Moq嘲弄我的RequestContext和HttpContext的信息? 我试图嘲笑cookies和一般情况。
我有一个控制器在C#使用ASP.Net MVC框架 public class HomeController:Controller{ public ActionResult Index() { if (Request.IsAjaxRequest()) { //do some ajaxy stuff } return View("Index"); } } 我有一些嘲讽的技巧,并希望用以下和RhinoMockstesting代码 var mocks = new MockRepository(); var mockedhttpContext = mocks.DynamicMock<HttpContextBase>(); var mockedHttpRequest = mocks.DynamicMock<HttpRequestBase>(); SetupResult.For(mockedhttpContext.Request).Return(mockedHttpRequest); var controller = new HomeController(); controller.ControllerContext = new ControllerContext(mockedhttpContext, new RouteData(), controller); var result = controller.Index() as ViewResult; Assert.AreEqual("About", […]