草庐IT

c# - 我该如何设置(最小起订量设置)

我想测试返回用户密码问题的代码部分。因此,我使用Moq制作了成员(member)提供程序的模型。我认为我不需要向您展示实际代码,只需要展示它的测试部分。//ArrangevarmembershipMock=newMock();membershipMock.Setup(m=>m.GetUser("test",false).PasswordQuestion).Returns("Password");authentication.Authenticate.Provider=membershipMock.Object;//Actvaractual=authentication.Password

c# - 如何使用 Moq 修改模拟方法的调用参数?

是否可以修改模拟方法的调用参数?特别是我希望改变buffer在以下示例中为预填充的字节数组。例子:intMockedClass.Read(byte[]buffer,intoffset,intcount)解释:打电话Read负载count从offset读取的字节数到提供的字节数组buffer.现在我想在调用Read之后填充缓冲区已在我的应用程序代码中完成。这可能吗?如果是,我将如何连续调用Read?如果可能的话,我希望连续调用每次都返回不同的缓冲区。编辑:使用Setup像这样的命令:MockedClass.Setup(x=>x.Read(It.IsAny(),It.IsAny(),It.

c# - 测试和模拟私有(private)/ protected 方法。许多帖子,但仍然无法使一个示例起作用

我看过很多关于“Mockingaprivatemethod”的帖子和问题,但仍然无法让它工作,也没有找到真正的答案。让我们忘记代码的味道,你不应该这样做等等......据我所知,我做了以下事情:1)创建了一个类库“MyMoqSamples”2)添加了对Moq和NUnit的引用3)编辑AssemblyInfo文件并添加[装配:InternalsVisibleTo(“DynamicProxyGenAssembly2”)][程序集:InternalsVisibleTo("MyMoqSamples")]4)现在需要测试一个私有(private)方法。因为它是一个私有(private)方法,所以

c# - 在调用方法时使用 Moq 分配属性值

我正在尝试使用Moq在调用方法时分配属性。类似的东西:Mockmock=newMock();mock.Setup(x=>x.Start()).AssignProperty(y=>y.Enabled=true);是否可以在调用方法时使用Moq设置预期的属性值 最佳答案 我假设您实际上是在尝试在调用方法时在Mock上执行一个新的Setup()?如果是这样,您应该能够通过回调来完成此操作,如下所示:Mockmock=newMock();mock.Setup(x=>x.Start()).Callback(()=>mock.SetupGet(

c# - .NET:HttpClient 使用我的接口(interface) IHttpClient 模拟它,但有一个内部对象为 NULL,它是密封的

不知道有没有人能帮忙。我已经创建了自己的IHttpClient,因此我可以使用最小起订量模拟HttpClient。工作得很好,但有一个名为DetaultRequestHeaders的内部对象,它有一个名为Authorization的属性。我在我的构造函数或我的类中设置它,它在注入(inject)的IHttpClient中接受,当然在运行时一切都按预期工作。但是使用单元测试我得到一个错误提示Objectreferencenotsettoinstance....这是因为DefaultRequestHeaders为空。现在在进一步调查之后,它似乎是HttpRequestHeaders但它是一

c# - 如何进行单元测试以测试检查请求 header 的方法?

我对单元测试非常非常陌生,正在尝试为一种非常简单的方法编写测试:publicclassmyClass:RequireHttpsAttribute{publicoverridevoidOnAuthorization(AuthoizationContextfilterContext){varrequest=filterContext.HttpContext.Request;varheader=Convert.ToBoolean(request.Headers["Special-Header-Name"]);if(!(header||request.IsSecureConnection)){

c# - 将 autofac 与最小起订量一起使用

我需要用特定接口(interface)注册我的Autofac容器,对于这种情况我想解析模拟。我该怎么做?我试过:varAppContainer=ApplicationContainer.GetApplicationContainer();varcb=newContainerBuilder();cb.RegisterType>().As().SingleInstance();cb.Update(AppContainer);我不想更改我的代码来解决除IStudyLoader以外的问题,但是Mock不可替代IStudyLoader;例如Mock.Object可替代IStudyLoader,但

c# - 测试 ASP.NET Core IMemoryCache 的正确方法

我正在编写一个简单的测试用例来测试我的Controller在调用我的服务之前调用缓存。我正在使用xUnit和Moq来完成这项任务。我遇到了一个问题,因为GetOrCreateAsync是一种扩展方法,框架不能模拟这些方法。我依靠内部细节来弄清楚我可以模拟TryGetValue相反,逃避我的测试(参见https://github.com/aspnet/Caching/blob/c432e5827e4505c05ac7ad8ef1e3bc6bf784520b/src/Microsoft.Extensions.Caching.Abstractions/MemoryCacheExtension

c# - Jenkins 失败单元 CanExecute 测试的方法不确定

我们在项目中对各种命令进行了很多CanExecute测试。当我们使用VisualStudio测试或AxoCover时,所有测试都正确通过。我们尝试在执行“CanExecute”之前添加一些先前的对象初始化,有时它有效(或者我们认为有效)。testedViewModel.Object.InEditMode=inEditMode;我有一个测试:[TestCase(true,true,TestName="Command_InEditMode_CanExecute")][TestCase(false,false,TestName="Command_NotInEditMode_CannotExe

c# - 使用 Task.Factory.StartNew().ContinueWith() 的单元测试代码

所以我有一些代码Task.Factory.StartNew(()=>this.listener.Start()).ContinueWith((task)=>{if(task.IsCompleted){this.status=WorkerStatus.Started;this.RaiseStatusChanged();this.LogInformationMessage("WorkerStarted.");}});当我测试时,我正在模拟所有依赖对象(namleythis.listener.Start())。问题是测试在调用ContinueWith之前完成执行。当我调试时,由于我单步执行代