Tag: 嘲笑

如何在“模拟”BaseHttpContext上设置IP(UserHostAddress)?

我正在尝试创建一个虚拟的BaseHttpContext来进行一些(模拟)测试而无需执行实际请求。 我想在我的虚拟上下文中添加一个IP地址。 string url = “http://www.google.com”; //wrap in uri Uri uri = new Uri(url); //create request var request = new HttpRequest(“”, uri.GetLeftPart(UriPartial.Path), uri.Query); request.ServerVariables.Add(“REMOTE_ADDR”, ip); //dummy context HttpContext context = new HttpContext( new HttpRequest(“”, uri.GetLeftPart(UriPartial.Path), uri.Query), new HttpResponse(new StringWriter(System.Text.Encoding.UTF8)) ); //wrap context var contextWrapper = new HttpContextWrapper(context); IP应该反映在BaseHttpContext.Request.UserHostAddress 。 像这样添加IP: request.ServerVariables.Add(“REMOTE_ADDR”, ip); ,导致以下exception: 不支持指定的方法。

最佳模拟图书馆

哪个是C#3.0 / ASP.NET MVC最好的模拟库? 为什么?

模拟会话在MVC 5中不起作用

我正在我的控制器中的Session中存储值正在测试的Action。 我已经阅读了几篇关于如何模拟会话的文章,我正在尝试实现Milox 在unit testing中设置httpcontext当前会话的答案。 但是当我钻进Locals | this | base | HttpContext Locals | this | base | HttpContext 当设置Session变量HttpContext.Session[“BsAcId”] = vM.BusAcnt.Id; Locals | this | base | HttpContext Sessions仍为null并且测试失败,并带有Null ReferenceexceptionHttpContext.Session[“BsAcId”] = vM.BusAcnt.Id; 这是工作生产代码。 vM.BusAcnt.Id返回一个有效的int ,如果我用int值替换它,测试仍然失败,因为Session为null,因此没有值可以存储在其中。 我正在使用MVC5,EF6以及最新版本的xUnit,Moq和Resharper测试运行器。 行动: public ActionResult Details(int id) { var vM = new BusAcntVm(); vM.BusAcnt = _db.BusAcnts.FirstOrDefault(bA => bA.Id == id); if […]

在犀牛嘲笑中嘲弄lambda

我正在尝试使用Rhino Mocks来模拟下面的lambda,但是不断碰到一堵砖墙 var result = rep.Find(x => (x as IEntity).ID == (entity as IEntity).ID).FirstOrDefault(); 有任何想法吗?

NSubstitute模拟扩展方法

我想做模拟扩展方法,但它不起作用。 如何才能做到这一点? public static class RandomExtensions { public static IEnumerable NextInt32s(this System.Random random, int neededValuesNumber, int minInclusive, int maxExclusive) { // … } } [Fact] public void Select() { var randomizer = Substitute.For(); randomizer.NextInt32s(3, 1, 10).Returns(new int[] { 1, 2, 3 }); }

Moq模拟和跟踪会话值

我在使用Moq从mocking返回Session值集时遇到问题。 使用以下内容 public class TestHelpers { public long sessionValue = -1; public HttpContextBase FakeHttpContext() { var httpContext = new Mock(); var session = new Mock(); httpContext.Setup(x => x.Session).Returns(session.Object); httpContext.SetupGet(x => x.Session[“id”]).Returns(sessionValue); httpContext.SetupSet(x => x.Session[“id”] = It.IsAny()) .Callback((string name, object val) => { sessionValue = (long)val; }); } } 当我尝试获取外部使用的值 var th = new TestHelpers(); HttpContextBase […]

我如何模仿Elmah的ErrorSignal例程?

我们使用ELMAH处理ASP.Net MVC c#应用程序中的错误,在我们捕获的exception中,我们正在执行以下操作: ErrorSignal.FromCurrentContext().Raise(exception); 但是当我尝试对捕获的exception进行unit testing时,我收到此消息: System.ArgumentNullException: Value cannot be null. Parameter name: context 如何模拟FromCurrentContext()调用? 我还应该做些什么呢? 仅供参考……我们目前正在使用Moq和RhinoMocks。 谢谢!

每个主要模拟框架的现实利弊是什么?

另请参阅“ 为.Net选择模拟框架时应该考虑什么 ” 我正在尝试决定在我最近开始使用的.NET项目上使用的模拟框架。 我想加快我对不同框架的研究。 我最近阅读了这篇博客文章http://codevanced.net/post/Mocking-frameworks-comparison.aspx,并想知道是否有任何StackOverflow受众有任何可以添加的东西,以实现现实世界的优势和对框架的警告。 人们是否可以列出他们目前正在使用或已经调查过自己在.NET项目中使用的模拟框架的优缺点。 我认为这不仅有助于我决定当前的项目,还可以帮助其他人在为他们的情况选择正确的框架时做出更明智的决策。 我不是任何框架的专家,但我想得到支持和反对我遇到的主要框架的论据: RhinoMocks 起订量 TypeMock隔离器 NMock 痣 我错过了其他可用的替代品。 我也喜欢那些由于问题而转换或停止使用产品的用户的见解。