Questions tagged «mocking»

模拟和伪造是隔离代码或组件的方法,以确保单元测试仅针对可测试的代码单元运行,而无需实际利用其他组件或应用程序的依赖项。模拟与伪造的不同之处在于,可以检查模拟以断言测试结果。

2
Mockito when()调用如何工作?
给出以下Mockito语句: when(mock.method()).thenReturn(someValue); 假设嘲笑方法将返回值传递给when(),那么Mockito如何为该嘲笑创建代理?我想这会使用一些CGLib的东西,但是想知道如何从技术上做到这一点。

10
如何使用Jest模拟JavaScript窗口对象?
我需要测试一个在浏览器中打开新标签页的功能 openStatementsReport(contactIds) { window.open(`a_url_${contactIds}`); } 我想模拟窗口的open功能,以便验证传递给该open功能的URL是否正确。 使用Jest,我不知道该如何模拟window。我尝试window.open使用模拟功能进行设置,但是这种方式不起作用。下面是测试用例 it('correct url is called', () => { window.open = jest.fn(); statementService.openStatementsReport(111); expect(window.open).toBeCalled(); }); 但这给了我错误 expect(jest.fn())[.not].toBeCalled() jest.fn() value must be a mock function or spy. Received: function: [Function anonymous] 我应该对测试用例怎么办?任何建议或提示表示赞赏。

14
如何在JavaScript单元测试中模拟localStorage?
有没有可以模拟的库localStorage? 我一直在使用Sinon.JS进行其他大多数JavaScript 模拟,并且发现它确实很棒。 我的初步测试表明,localStorage拒绝在firefox(sadface)中分配,因此我可能需要对此进行一些修改:/ 到目前为止,我的选择如下所示: 创建我所有代码都使用的包装函数并模拟它们 为localStorage创建某种状态(可能很复杂)状态管理(测试前快照localStorage,在清理还原快照中)。 ?????? 您如何看待这些方法,您是否认为还有其他更好的方法可以做到这一点?无论哪种方式,我都会将最终生成的“库”放到github上以获取开放源代码。

7
如何“休眠” Dart程序
我喜欢在Dart应用程序中模拟一个异步Web服务调用以进行测试。为了模拟这些模拟调用响应的随机性(可能是无序的),我想对模拟程序进行编程,使其在返回“未来”之前等待(睡眠)一段时间。 我怎样才能做到这一点?

5
如何使用Moq在ASP.NET MVC中模拟HttpContext?
[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). ... } 我的基本控制器重写了初始化此请求上下文的初始化。我正在努力做到这一点,但我做的事情不正确。 protected override void Initialize(System.Web.Routing.RequestContext requestContext) { base.Initialize(requestContext); } 在哪里可以获取有关使用Moq模拟我的RequestContext和HttpContext的更多信息?我正在尝试模拟cookie和一般上下文。


7
Mockito-@间谍vs @Mock
Mockito-我知道间谍在对象上调用真实方法,而模拟对象在double对象上调用方法。除非有代码气味,否则也应避免间谍活动。但是,间谍如何工作,我什么时候应该实际使用它们?它们与模拟游戏有何不同?


11
方形改装服务器模拟测试
什么是嘲笑使用时,测试服务器的最好办法广场改造框架。 可能的方式: 创建一个新的改装客户端,并在RestAdapter.Builder()。setClient()中进行设置。这涉及解析Request对象并返回json作为Response对象。 将此带注释的接口实现为模拟类,并使用它代替RestAdapter.create()提供的版本(不会测试gson序列化) ? 理想情况下,我想让模拟服务器提供json响应,以便我可以同时测试gson序列化。 任何例子将不胜感激。

7
如何用模拟模拟只读属性?
您如何使用模拟模拟只读属性? 我试过了: setattr(obj.__class__, 'property_to_be_mocked', mock.Mock()) 但问题在于它随后适用于该类的所有实例...这破坏了我的测试。 您还有其他想法吗?我不想模拟整个对象,而只是模拟这个特定的属性。

7
您最喜欢的Python模拟库是什么?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 您最喜欢的Python模拟库是什么?
91 python  mocking 

6
开玩笑:禁用单元测试中的控制台的更好方法
我不知道是否有更好的方式禁用错误控制台 里面一个特定的玩笑测试(即,恢复原来的控制台/前每次测试后)。 这是我目前的方法: describe("Some description", () => { let consoleSpy; beforeEach(() => { if (typeof consoleSpy === "function") { consoleSpy.mockRestore(); } }); test("Some test that should not output errors to jest console", () => { expect.assertions(2); consoleSpy = jest.spyOn(console, "error").mockImplementation(); // some function that uses console error expect(someFunction).toBe("X"); expect(consoleSpy).toHaveBeenCalled(); }); …

3
如何使用Moq框架模拟ModelState.IsValid?
我正在检 ModelState.IsValid入创建这样的Employee的控制器操作方法: [HttpPost] public virtual ActionResult Create(EmployeeForm employeeForm) { if (this.ModelState.IsValid) { IEmployee employee = this._uiFactoryInstance.Map(employeeForm); employee.Save(); } // Etc. } 我想使用Moq Framework在我的单元测试方法中模拟它。我试图这样模拟它: var modelState = new Mock<ModelStateDictionary>(); modelState.Setup(m => m.IsValid).Returns(true); 但这在我的单元测试用例中引发了异常。有谁可以帮我离开这里吗?


5
用参数模拟构造函数
我的课如下: public class A { public A(String test) { bla bla bla } public String check() { bla bla bla } } 在构造函数中的逻辑A(String test)和check()是我试图嘲弄的事情。我想要任何调用,例如:new A($$$any string$$$).check()返回一个虚拟字符串"test"。 我试过了: A a = mock(A.class); when(a.check()).thenReturn("test"); String test = a.check(); // to this point, everything works. test shows as "tests" whenNew(A.class).withArguments(Matchers.anyString()).thenReturn(rk); // also tried: …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.