我有一些紧密耦合的遗留代码,我想用测试覆盖它们。有时确保一个模拟出的方法在另一个方法之前被调用很重要。一个简化的例子:functionPageManager(page){this.page=page;}PageManager.prototype.openSettings=function(){this.page.open();this.page.setTitle("Settings");};在测试中,我可以检查是否调用了open()和setTitle():describe("PageManager.openSettings()",function(){beforeEach(functi
我有很多测试,其中一些名称中有“(慢)”:其中一些比标记为(慢)的测试慢,但其他测试依赖于它们,因此不能跳过。我只想跳过名称中带有(慢)的那些——这可能吗?我正在使用Mocha。 最佳答案 在我看来,您正在为要在浏览器中加载以运行Mocha的页面执行此操作。要在浏览器中执行此操作,您可以在页面的URL中传递这些参数:grep大致对应于命令行上的--grep选项。这将运行的测试范围缩小到与传递给grep的表达式相匹配的测试。但是,目前(甚至从2.0.1开始)没有办法让Mocha将此参数解释为正则表达式。它总是被解释为一个字符串。这就是
我有这个组件:importReactfrom'react';importVideoTagfrom'./VideoTag';importJWPlayerfrom'./JWPlayer';classVideoWrapperextendsReact.Component{//...componentcode}基于某些逻辑在内部呈现另一个组件(VideoTag或JWPlayer)但是当我尝试在一个Jest文件中测试它时我得到错误:找不到模块'./VideoTag'这三个组件在同一个目录中,这就是为什么当我转译它并在浏览器中看到它在运行时它实际上有效但看起来Jest在解析这些相对路径时遇到问题,这
我在尝试使用jasmine和karmatestrunner进行单元测试的指令访问我的Controller时遇到了一些问题。该指令如下所示:指令angular.module('Common.accountSearch',['ngRoute']).directive('accountSearch',[function(){return{controllerAs:'ctrl',controller:function($scope,$element,$routeParams,$http){this.setAccount=function(){varresponse={AccountId:$sc
如何使用sinon.js模拟框架在回调函数中测试代码?JSFiddle:http://jsfiddle.net/ruslans/CE5e2/varservice=function(){return{getData:function(callback){returncallback([1,2,3,4,5]);}}};varmodel=function(svc){return{data:[],init:function(){varself=this;svc.getData(function(serviceData){self.data=serviceData;//***testthisli
是否可以将Jest与多个预设一起使用,比如jsdom和react-native?我想测试一个可以在Web和ReactNative环境中工作的React组件。问题在于组件可能使用ReactNative库或某些文档的方法。当我运行一些测试时,jest回复:Cannotfindmodule'NetInfo'from'react-native-implementation.js'当我尝试添加时"jest":{"preset":"react-native"}对于package.json,我得到:ReferenceError:windowisnotdefined 最佳答
我有一个使用Jammit组合javascriptAssets的Rails应用程序,我想使用Jasmine用于我的javascript的BDD样式测试。我想知道是否有人对从Jasmine中访问Jammit生成的“包”有任何建议?问题是Jasmine是通过在磁盘上定义要测试的JS文件列表来配置的,然后它将这些文件包含在它自己的测试运行器页面中,该页面在浏览器中加载并运行。在使用Jammit打包之前,我可以在jasmine.yml配置文件中引用每个单独的JS文件...但是,Jammit已经为我处理了文件之间的依赖关系,更重要的是,我还需要访问已编译的javascripttemplatesJa
我正在为vuelidate编写单元测试在我的组件中进行验证。我发现$touch()方法是异步调用的,所以我需要为expect()使用$nextTick()。当我需要两个nextTick()s用于两个expect()s时,问题就出现了。describe('Validations',()=>{letdataletmyComponentbeforeEach(()=>{data=()=>{propertyABC='notallowedvalue'}myComponent=localVue.component('dummy',{template:'',validations,data})it('
我当前的项目使用JSON作为数据交换格式。前端和后端团队在开始集成服务之前就JSON结构达成一致。有时由于后端团队未通知JSON结构的更改;它破坏了前端代码。是否有任何外部库可用于比较模拟JSON(夹具)与服务器JSON响应。基本上它应该断言整个JSON对象,如果服务器JSON格式有任何违规,它应该抛出错误。附加信息:应用是基于使用RESTJSON服务的JQuery构建的。 最佳答案 我会为您的JSON对象推荐一个架构。我使用Kwalify但你也可以使用Rx如果您更喜欢这种语法。 关于j
我想为我的Yeoman项目使用browserify而不是RequireJS。你能告诉我如何交换它以便我的app/和test/可以利用module.exports和require()吗? 最佳答案 这是我做的:npminstallgrunt-browserify--save-devnpminstallcoffeeify--save-dev在Gruntfile.js中添加grunt-browserify步骤:browserify:{basic:{src:['/scripts/**/*.js','/scripts/**/*.coffee'