我已经创建了一个包含环境信息的Env服务,我目前正在使用$location.host()来确定我所处的环境。我如何在我的测试中模拟它?我读过https://groups.google.com/forum/?fromgroups#!topic/angular/F0jFWC4G9hI,但它似乎不起作用,例如:describe("Env(environment)service",function(){varEnv;beforeEach(module('App'));beforeEach(inject(['Env',function(e){Env=e;}]));describe("forsta
我有一个模拟对象,我用它来模拟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
如何使用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()将使用
我有几个Redux-Thunk风格的函数,可以在一个文件中分派(dispatch)其他操作。其中一个Action将另一个作为其逻辑的一部分进行分派(dispatch)。它看起来类似于:exportconstfunctionToMock=()=>async(dispatch)=>{awaitdispatch({type:'abasicaction'});};exportconstfunctionToTest=()=>async(dispatch)=>{dispatch(functionToMock());};在我实际遇到的情况下,这些函数都涉及更多,并且每个都分派(dispatch)多个
我正在使用Backbone和Backbone.Marionette编写单页JavaScript应用程序。我正在使用AMD模块和RequireJS来帮助组织我的代码和管理依赖项。我也在使用Mocha作为我的TDD/BDD测试框架。一切正常,直到我想使用Sinon.JS引入stub、模拟和spy。经过大量搜索,我在testframeworksintheRequireJSwiki上找到了一个页面和Squire.js,这似乎很适合我的需要。但是,当我尝试使用Squire.js加载模块时,Mocha突然报告模块依赖项的全局泄漏。如果我直接使用Require.JS加载模块,则没有泄漏报告。例如,下
问题:我有一个简单的React组件,我正在使用它来学习使用Jest和Enzyme测试组件。在处理Prop时,我添加了prop-types模块来检查开发中的属性。prop-types使用console.error在未传递必需的props或props是错误的数据类型时发出警报。我想模拟console.error来计算它在我传入丢失/错误输入的props时被prop-types调用的次数。使用这个简化的示例组件和测试,我希望这两个测试的行为如下:具有0/2个所需Prop的第一个测试应该捕获模拟调用两次。具有1/2必需Prop的第二个测试应该捕获调用一次的模拟。相反,我得到了这个:第一个测试运
例如,我有以下文件:spec/config/file-mock.jsvarmock=require('mock-fs');mock({'files':{'expense.csv':'a;b;c;d\n1;2;3;4\n5;6;7;8'}});app/reader/reader.jsvarfs=require('fs');varreader={read:function(path){returnfs.readFileSync(path,'utf8');},write:function(path,object){fs.writeFileSync(path,object);}};module
我正在尝试使用Karma对AngularJS进行一些基本的单元测试。我编写的所有测试在语法上似乎都是正确的。但是我在最基本的步骤中遇到了问题,即代码的beforeEach部分。当我尝试运行测试时,出现以下问题TypeError:Cannotreadproperty'$injector'ofnullatObject.workFn(http://localhost:9876/absolute/Users/vesriram/Documents/AngularJS%20project/vendor/js/angular-mocks.js:1698:15)atObject.(http://loc
让我们来看下面的例子:constlistDefinition:any={module:"module",service:"service",listname:"listname"};@Component(...)classMockTreeExpanderComponentextendsTreeExpanderComponent{...}classMockListConfigurationsServiceextendsListConfigurationsService{...}describe('ColumnsListConfigurationsComponentTestcases',(
如果我们有三个模块名称A、B和C,那么模块A需要B和B需要C:这个调用会产生什么效果?varA=proxyquire('A',{'C':mockedModule})模块B会得到mock还是真正的C模块? 最佳答案 只会模拟直接依赖。但是您可以嵌套proxyquire语句,因此在您的示例中您可以:constA=proxyquire('../A',{'./B':proxyquire('../B',{'C':mockC})});文件结构是这样的root|--A.js|--B.js`--tests`--A.spec.js并且importC不