Tag: 摩卡

运行摩卡testing时,Babel意外的令牌导入

在其他相关问题中提供的解决scheme,例如在.babelrc中包含正确的预设(es2015),已经在我的项目中实现。 我有两个项目(让我们称之为A和B)都使用ES6模块语法。 在项目A中,我正在导入通过npm安装的项目B,并且位于node_modules文件夹中。 当我运行我的testing套件的项目A,我收到错误: SyntaxError:意外的标记导入 项目B中这个所谓的错误的代码行之前: (函数(exports,require,module,__filename,__dirname){从'history / lib / createBrowserHistory'导入createBrowserHistory; 因为我的源文件只包含“history / lib / createBrowserHistory”导入createBrowserHistory;项目B的testing套件中的unit testing运行良好,如果我作为依赖从项目B中删除项目项目A,我的testing套件(仍然使用es6导入内部项目模块)工作得很好。 全堆栈跟踪: SyntaxError: Unexpected token import at exports.runInThisContext (vm.js:53:16) at Module._compile (module.js:374:25) at Module._extensions..js (module.js:405:10) at Object.require.extensions.(anonymous function) [as .js] (/ProjectA/node_modules/babel-register/lib/node.js:138:7) at Module.load (module.js:344:32) at Function.Module._load (module.js:301:12) at Module.require (module.js:354:17) at require (internal/module.js:12:17) at Object.<anonymous> (actionCreators.js:4:17) at Module._compile (module.js:398:26) […]

如何使用PassportvalidationSupertest请求?

我使用Passport.js进行身份validation(本地策略),并使用Mocha和Supertest进行testing。 我如何创build一个会话,并使用Supertest进行身份validation请求?

如何从node.js中的一个“npm test”命令运行mocha和mocha-phantomjstesting?

我有几个node.js环境和浏览器中的节点包。 现在我有两个单独的testing(针对每个环境)。 用npm test命令运行这些testing的最好方法是什么? 另外我想将这些软件包添加到Travis。 我正在使用mocha和mocha-phantomjs 。 节点testing命令 node ./node_modules/mocha/bin/mocha ./test/node/index.js –reporter spec 浏览器testing命令 node ./node_modules/mocha-phantomjs/bin/mocha-phantomjs ./test/browser/index.html 我试过的: 将这些命令添加到用分号分隔的npm test脚本中 问题:当第一个脚本出现错误,但第二个脚本没有错误时,命令退出0,并通过travis构build。 让节点命令在npm test脚本中testing,并为浏览器testing创build自定义脚本。 将这两个命令( npm test和npm run-script test-browser )添加到travis.yml中作为数组。 问题:用户必须手动运行两个独立的testing脚本。 让节点命令在npm test脚本中npm test ,并将浏览器testing添加到npm posttest命令中。 Travis.yml只会有一个脚本,用户也需要运行一个脚本(每个人都很高兴)。 问题:这只是感觉不对,所以我想知道是否有更好的方法。

在RSpec中如何说“any_instance”“should_receive”任意次数

我有一个导入控制器导入几个CSV文件到我的数据库的多个logging。 我想在RSpec中进行testing,如果使用RSpec实际保存logging: <Model>.any_instance.should_receive(:save).at_least(:once) 不过,我得到的错误说: The message 'save' was received by <model instance> but has already been received by <another model instance> 控制器的一个人为的例子: rows = CSV.parse(uploaded_file.tempfile, col_sep: "|") ActiveRecord::Base.transaction do rows.each do |row| mutation = Mutation.new row.each_with_index do |value, index| Mutation.send("#{attribute_order[index]}=", value) end mutation.save end 有没有可能使用RSpec来testing这个,或者是否有任何解决方法?

你如何安装和运行Mocha,Node.jstesting模块? 安装后得到“mocha:command not found”

我很难让Mocha如预期的那样工作,而且我很乐意按照logging来说,但是似乎没有太多的文件能够让事情真正运行起来。 我已经使用npm (全局和本地)安装它,每当我运行它我得到: $ mocha mocha: command not found 好吧,所以我觉得这不是我的PATH ,所以我试着直接运行它, $ ./node_modules/mocha/bin/mocha execvp(): No such file or directory 最后,我试着打另一个bin文件, $ ./node_modules/mocha/bin/_mocha path.existsSync is deprecated. It is now called `fs.existsSync`. . ✔ 1 tests complete (1ms) 我怎样才能用一个命令执行我的testing? 誓言似乎让你,但我听说摩卡是更好的select,我似乎无法让它正常工作。 对于我在第三次尝试中得到的错误有什么想法? 编辑: 我在跑, Ubuntu 11.10 64位 Node.js 0.7.5 npm 1.1.8 摩卡0.14.1 应该是0.6.0

我如何testing我的快速应用程序与摩卡?

我刚刚添加了shouldjs和mocha到我的快速应用程序进行testing,但我想知道如何testing我的应用程序。 我想这样做: app = require '../app' routes = require '../src/routes' describe 'routes', -> describe '#show_create_user_screen', -> it 'should be a function', -> routes.show_create_user_screen.should.be.a.function it 'should return something cool', -> routes.show_create_user_screen().should.be.an.object 当然,这个testing套件中的最后一个testing只是告诉医生res.render函数(在show_create_user_screen中调用)是未定义的,可能是因为服务器没有运行,configuration尚未完成。 所以我想知道其他人是如何进行testing的?

如何以编程方式closuresExpressJS的实例进行testing?

我想弄清楚如何closuresExpress的一个实例。 基本上,我想要.listen(port)调用的反向 – 我如何获得一个Express服务器停止监听,释放端口,并closures干净? 我知道这似乎可能是一个奇怪的查询,所以这里是上下文; 也许还有另一种方法来解决这个问题,我正在考虑错误的方式。 我正在尝试为我的socket.io/nodejs应用程序设置一个testing框架。 这是一个单页面的应用程序,所以在我的testing脚本(我使用摩卡 ,但这并不重要),我想能够启动服务器,运行testing,然后closures服务器。 我可以通过假设在testing开始之前打开服务器或者通过其中一个testing启动服务器,并且随后的每个testing都假定它已经启动,但是这真的很混乱。 我更愿意让每个testing文件都使用适当的设置启动一个服务器实例,然后在testing结束时closures这个实例。 这意味着没有奇怪的依赖运行testing,一切都是干净的。 这也意味着我可以做启动/关机testing。 那么,有关如何做到这一点的任何build议? 我曾经想过手动触发exception来使它失效,但这似乎很混乱。 我已经挖掘了快速文档和来源,但似乎无法find任何方法,将closures服务器。 在socket.io中也可能有这样的一些东西,但是由于套接字服务器只连接到了Express服务器,所以我认为这需要在快速层进行。

使用mocha和node.js对私有函数进行unit testing

我正在使用摩卡来testing为node.js编写的应用程序 我想知道是否可以unit testing没有在模块中导出的函数。 例: 我在foobar.js定义了很多这样的函数 function private_foobar1(){ … } function private_foobar2(){ … } 和一些作为公众出口的function: exports.public_foobar3 = function(){ … } testing用例的结构如下: describe("private_foobar1", function() { it("should do stuff", function(done) { var stuff = foobar.private_foobar1(filter); should(stuff).be.ok; should(stuff)….. 显然这是行不通的,因为private_foobar1没有被导出。 unit testing私有方法的正确方法是什么? 摩卡是否有一些内置的方法来做到这一点?

用Mochatestingjavascript – 我如何使用console.log来debuggingtesting?

我正在使用JavaScripttesting运行“摩卡”。 我有一个失败的testing,所以我会debugging它使用console.log 。 但是当testing运行时,没有输出(仅来自Mocha的testing结果)。 摩卡似乎已经捕获并压制了我的console.log输出! 我怎样才能让摩卡显示我的输出? (在testing失败)? 编辑: 巨大的歉意! – console.log在testing过程中不起作用! 我一定是期待它压制输出,我没有正确地检查我自己的代码。 感谢您的回应。 所以…说的是…也许它实际上会是很好的压制输出testing通过? 嗯… 在一个相关的说明:我想使用console.log因为我有很多麻烦试图让Eclipsedebugging器连接到node.js. 我是唯一一个发现这个棘手的人吗? 你们如何debuggingnode.js? 用debugging器,还是用console.log语句?

有没有办法让Chai与asynchronous摩卡testing一起工作?

我正在Mocha使用Browser Runner运行一些asynchronoustesting,我试图使用Chai的expect风格断言: window.expect = chai.expect; describe('my test', function() { it('should do something', function (done) { setTimeout(function () { expect(true).to.equal(false); }, 100); } } 这不会给我正常的失败的断言信息,而是我得到: Error: the string "Uncaught AssertionError: expected true to equal false" was thrown, throw an Error 🙂 at Runner.fail (http://localhost:8000/tests/integration/mocha/vendor/mocha.js:3475:11) at Runner.uncaught (http://localhost:8000/tests/integration/mocha/vendor/mocha.js:3748:8) at uncaught (http://localhost:8000/tests/integration/mocha/vendor/mocha.js:3778:10) 所以很明显,这个错误只是显示不正确。 任何想法如何做到这一点? 我想我可以用一个错误对象来调用“完成”,但是随后我失去了所有类似Chai的优雅,并且变得非常笨重。