草庐IT

rspec-mocks

全部标签

ruby - 什么时候使用 RSpec let()?

我倾向于使用beforeblock来设置实例变量。然后我在我的示例中使用这些变量。我最近遇到了let()。根据RSpec文档,它用于...todefineamemoizedhelpermethod.Thevaluewillbecachedacrossmultiplecallsinthesameexamplebutnotacrossexamples.这与在beforeblock中使用实例变量有何不同?还有什么时候应该使用let()vsbefore()? 最佳答案 我总是更喜欢let而不是实例变量,原因如下:实例变量在被引用时出现。这意

javascript - 如何使用嵌套函数(javascript、jasmine)为第 3 方库编写 mock

我是TDD的新手,我正在尝试编写使用第三方库(跨平台移动开发)的可测试代码。我想进行测试以仅检查我们的业务逻辑。不用担心它们的实现。此外,他们的库仅在native包装器中公开。由于使用js作为开发语言,我想使用jasmine进行测试并运行测试以仅在浏览器中检查我的业务逻辑。以下是我想在测试时忽略/模拟的方法模式。com.companyname.net.checkInternetAvailable(url)com.companyname.store.getValue(key)com.companyname.someother.name(whateverObj,callback)etc.,

javascript - 为什么我的 jest.mock 中的 Promise reject() 会转到 then() 而不是 catch()?

我有两个文件,getItemInfo.js进行API调用,getItemInfo.test.js是相应的Jest测试文件。在测试文件中,我正在模拟由Node模块request-promise触发的http调用。问题在第二个代码块上,被*********包围。基本上为什么reject()错误仍然会在第二个单元测试中进入then()block?//getItemInfo.jsconstrp=require('request-promise');constgetItemInfo=(id)=>{constroot='https://jsonplaceholder.typicode.com/po

javascript - 使用 angular-mocks 匹配所有 GET url for backendless

我现在正在编写一个没有后端ajax的前端。我正在使用angular-mocks来模拟这样的API调用:$httpBackend.when('GET','/somelink').respond(function(method,url,data){//dosomething});但是,如果ajax传递params:{id:12345},它将附加到url为'/somelink?id=12345'。catchwhen('GET','/somelink')有没有办法使用RegEx或一些技巧来解决这个问题?只是为了不管params里面有什么,respond()仍然会被调用?谢谢。更新1:我不能使用

javascript - 如何将 Jest 中的 '__mocks__' 文件夹移动到/test?

我已经开始在Jest中使用mocks来测试我的NodeJS应用程序并且它们工作得很好,但是将__mocks__文件夹移动到/test文件夹会更有意义所以与测试相关的所有内容都在那里,而不是在/src中混合文件。这在某种程度上是可能的吗?我在Jest文档中的任何地方都找不到它。 最佳答案 jest.mock('../src/service',()=>require('./__mocks__/request'));这对我有用 关于javascript-如何将Jest中的'__mocks__'

javascript - SpyOn 一个 mock 的 Jest 模块没有正确监视

我有一个简单的服务,我需要使用jest进行单元测试:代码的关键是:domtoimage.toBlob(node,{filter:filter}).then(function(blob){FileSaver.saveAs(blob,fileName);});我已经这样编写了我的单元测试模块:importFileSaverfrom"file-saver";importdomtoimagefrom"dom-to-image";jest.mock('dom-to-image',()=>{return{toBlob:(arg)=>{letpromise=newPromise((resolve,r

javascript - 等同于 rspec =~ 对于 Chai 中的数组

Chai,matchers是否与rspecs=~等价(这意味着包含所有元素,但顺序无关紧要。传递示例[1,2,3].should=~[2,1,3]失败[1,2,3].should=~[1,2] 最佳答案 您可以使用最新版Chai中提供的members测试:expect([4,2]).to.have.members([2,4]);expect([5,2]).to.not.have.members([5,2,1]); 关于javascript-等同于rspec=~对于Chai中的数组,我们在

javascript - 使用 jest.mock 传递超出范围的变量

我有一个模拟对象,我用它来模拟react-native:constMyMock={MockA:{methodA:jest.genMockFn()},MockB:{ObjectB:{methodA:jest.genMockFn(),methodB:jest.genMockFn(),}}};jest.mock('react-native',()=>{returnMyMock;});我在jest.mock之外声明对象,因为我稍后在测试中也需要它:describe('MyClass',()=>{beforeEach(()=>{MyMock.MockB.ObjectB.methodA.mockC

javascript - mock 方法调用回调函数 sinon

如何使用sinon模拟调用回调的外部方法?给定以下代码的示例,getText应在回调函数中返回'astring'作为响应sinon.stub(a,'getText').returns('astring')letcb=function(err,response){console.log(response)}a.getText('abc',cb)它应该产生输出'astring'因为它调用回调函数cb但是没有输出 最佳答案 sinon.stub(a,'getText').yields(null,'astring');yields()将使用

javascript - Jest : mocking console. 错误 - 测试失败

问题:我有一个简单的React组件,我正在使用它来学习使用Jest和Enzyme测试组件。在处理Prop时,我添加了prop-types模块来检查开发中的属性。prop-types使用console.error在未传递必需的props或props是错误的数据类型时发出警报。我想模拟console.error来计算它在我传入丢失/错误输入的props时被prop-types调用的次数。使用这个简化的示例组件和测试,我希望这两个测试的行为如下:具有0/2个所需Prop的第一个测试应该捕获模拟调用两次。具有1/2必需Prop的第二个测试应该捕获调用一次的模拟。相反,我得到了这个:第一个测试运