Tag: moq

模拟一个使用Moq返回void的更新方法

在我的测试中,我将List定义为数据,其中包含一些记录。 我想设置一个moq的方法Update ,这个方法接收用户id和要更新的string 。 然后我获取IUser并更新属性LastName 我试过这个: namespace Tests.UnitTests { [TestClass] public class UsersTest { public IUsers MockUsersRepo; readonly Mock _mockUserRepo = new Mock(); private List _users = new List(); [TestInitialize()] public void MyTestInitialize() { _users = new List { new User { Id = 1, Firsname = “A”, Lastname = “AA”, IsValid = true }, […]

Moq根据被叫时间设置函数返回

我需要模拟一个接口来调用MSMQ,有没有一种方法我可以使用Moq模拟真实的MSMQ场景,队列中有10条消息,我调用模拟函数10次,我可以获得一个预定义的对象,第11次我应该得到不同的返回值(例如null)?

使用Moqvalidation事件注册

我正在开发一个尝试使用此示例实现MVP模式的asp.net(经典)应用程序。 在尝试对我的演示者进行unit testing并使用以下模式时,psuedocode看起来像这样 //base view interface public interface IView { event EventHandler Init; event EventHandler Load; bool IsPostBack { get; } void DataBind(); bool IsValid { get;} } //presenter psuedo code public class SomePresenter { public SomePresenter(ISomeDomainService service, IView someView) { … //HOW DO WE TEST/VERIFY THAT THIS REGISTRATION OCCURS? someView.Init += OnInit; someView.Load += […]

如何使用静态方法(UnitOfWork case)moq静态类?

我有这些课程: public static class UnitOfWorkSS { public static IUnitOfWork Begin() { return IoC.Resolve(); } } public class PostService { using (IUnitOfWork unitOfWork = UnitOfWorkSS.Begin()) { //don’t forget to sanitize html content htmlContent = _htmlSanitizer.Sanitize(htmlContent); IPost post = _factory.CreatePost(byUser, title, htmlContent); _postRepository.Add(post); unitOfWork.Commit(); } } 我如何模拟UnitOfWorkSS和unitOfWork类?

如何进行unit testing以测试检查请求标头的方法?

我对unit testing非常非常新,我正在尝试为一个非常简单的方法编写测试: public class myClass : RequireHttpsAttribute { public override void OnAuthorization(AuthoizationContext filterContext) { var request = filterContext.HttpContext.Request; var header = Convert.ToBoolean(request.Headers[“Special-Header-Name”]); if (!(header || request.IsSecureConnection)) { HandleNonHttpsRequest(filterContext); } } } 此方法inheritance自RequireHttpsAttribute ,检查页面是否存在某个标头,如果它丢失或为false,并且页面不安全,则它将调用HandleNonHttpsRequest ,否则它不执行任何操作。 我们正在使用Moq和Nunit进行测试。 我找到了一些资源来帮助用Moq构建一个fakeHttpContext,但老实说我不知道​​如何使用它或在我的unit testing中去哪里以确保假HttpContexts是或不是导致HandleNonHttpsRequest方法调用。 我真的很感激这个问题的任何指导。

无法让DbSet.Find与Moq一起使用(使用entity framework)

由于某种原因,此代码一直失败。 任何可以告诉我原因的人: var activeLoans = new List { new ActiveLoan{ ID = 1, CaseType = “STL”, LoanCode = 0 }, new ActiveLoan{ ID = 2, CaseType = “STL”, LoanCode = 0 }, new ActiveLoan{ ID = 3, CaseType = “STL”, LoanCode = 0 } }.AsQueryable(); var activeLoanMockSet = new Mock<DbSet>(); activeLoanMockSet.As<IQueryable>().Setup(m => m.Provider).Returns(activeLoans.Provider); activeLoanMockSet.As<IQueryable>().Setup(m => […]

是否可以(使用Moq)使用Lambda参数进行存根方法调用?

如果我这样做: var repository = new Mock<IRepository>(); repository.Setup(x => x.Where(banner => banner.Is.AvailableForFrontend())).Returns(list); “Where”是我的存储库中采用Func<T, ISpecification 。 AvailableForFrontend返回ISpecification的实现,list是存储库的generics类型的IEnumberable。 它编译得很好,但是当我运行我的测试时,我得到以下错误。 —- System.NotSupportedException : Expression banner => Convert((banner.Is.AvailableForFrontend() & banner.Is.SmallMediaBanner())) is not supported. 如果我在存储库中使用Where的其他重载直接进行ISpecification,则没有问题。 所以我的新手模拟/ Moq问题是:我可以使用lamdba作为参数存根方法调用吗? 或者我应该以另一种方式解决这个问题?

使用Moq,Silverlight和NUnit进行unit testing

我正在尝试对Silverlight 3项目进行unit testing。 我在用: Moq.Silverlight(3.0.308.2) NUnitSilverlight( http://www.jeff.wilcox.name/2009/01/nunit-and-silverlight/ ) 当我编写一个不使用Moq的测试时,它可以正常工作。 当我在测试之外使用Moq时,Moq可以正常工作。 (我嘲笑了一个界面并在按钮处理程序中进行了validation作为证据。) 但是当我运行使用Moq的unit testing时,我总是这样: System.IO.FileNotFoundException: Could not load file or assembly ‘System, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e’ or one of its dependencies. The system cannot find the file specified. at Moq.ExpressionExtensions.ToStringFixVisitor..ctor(Expression expression) at Moq.Interceptor.AddCall(IProxyCall call, SetupKind kind) in c:\Build\Moq Drop\moq\WorkingDirectory\trunk\Source\Interceptor.cs: line 104 at Moq.Mock.c__DisplayClassc`2.b__b() in c:\Build\Moq Drop\moq\WorkingDirectory\trunk\Source\Mock.cs: line […]

使用Moq,如何使用输入参数设置方法调用作为具有预期属性值的对象?

使用Moq,如何使用输入参数设置方法调用作为具有预期属性值的对象? var storageManager = new Mock(); storageManager.Setup(e => e.Add(It.IsAny())); Add()方法需要具有FirstName属性的UserMetaData对象。 我想确保传递了具有FirstName为“FirstName1”的UserMetaData类型的对象。

什么是Moq?

我一直看到在DotNetKicks等上提到这个…但是无法确切地知道它是什么(英文)或它做什么? 你能解释它是什么,或者为什么我会用它?