Articles of 茉莉花

使用jasmine.spyOn用于mongoose模式方法

我无法让茉莉间谍为我的mongoose文件工作。 我有一个方法设置在我的用户架构像这样: User.methods.doSomething = function() { // implementation } 用户是我正在testing的模型的依赖关系,我想确保doSomething被正确调用。 在我的testing中,我有这样的东西: spyOn(User.schema.methods, 'doSomething') 如果我注销User.schema.methods.doSomething我得到我期望的function,但是当我运行调用该方法的代码原始实现被调用,而不是间谍。 我也不能这样做: spyOn(userInstance, 'doSomething') 在我的testing中,userInstance没有被暴露,我真的想避免暴露它。 本质上,我想在用户文档(实例?)原型上设置一个间谍。 那可能吗?

如何使用茉莉花和节点从命令行testingjQuery插件?

我有我正在testing的jQuery插件。 我发现这个问题: 如何从命令行上运行JasminetestingNode.js? 但是当我运行: node_modules/jasmine-node/bin/jasmine-node –verbose –junitreport –noColor spec 我得到错误,没有定义$。 我如何包含jQuery? (现在我只testing不与dom交互的实用程序)。

承诺解决后调用函数,但Jasmine不通过testing。 为什么?

我的应用程序使用一个服务,返回一个通常依赖于一大堆其他承诺的承诺。 我已经将这个重构成单独的命名函数,使testing(和可读性)更容易。 所以在这种情况下,我只想testing一下run函数是否完成了它的工作并调用其他函数。 例如 run() { return myService .connection .then(this.namedFunction1) .then(this.namedFunction2) .then(this.namedFunction3) .catch((error) => { console.log("doh!", error.stack); }); 当我testingnamedFunction1被称为茉莉花失败时,尽pipe事实并非如此。 下面是我为保持简单而编写的一个小代码示例: getString() { return Promise.resolve("Heeeelp. Heeeelp!!"); } printToConsole(string) { console.log(string); // This works! but Jasmine says nay 🙁 } myFunction() { this.getString() .then(this.printToConsole) .catch((error) => { console.log("Some error occurred", error); }); } …和testing: it("should call the […]

使用jasmine和node.jstestingweb API

我们编写了一个RESTful Web API,它使用node.js响应GET和PUT请求。 我们在testingAPI时遇到一些困难。 首先,我们使用了Zombie.js ,但没有很好的logging,所以我们无法得到PUT请求: var zombie = require("zombie"); describe("description", function() { it("description", function() { zombie.visit("http://localhost:3000/", function (err, browser, status) { expect(browser.text).toEqual("A") }); }); }); 之后,我们尝试使用一个名为restler的REST客户端,这可以,因为我们不需要任何高级的浏览器模拟。 这是因为请求似乎是asynchronous的,即testing是无用的,因为它在调用“成功”callback之前完成了: var rest = require('restler'); describe("description", function() { it("description", function() { rest.get("http://www.google.com").on('complete', function(data, response) { // Should fail expect(data).toMatch(/apa/i); }); }); }); 我们将感谢有关替代testing框架或同步请求客户端的任何提示。

在Node.js / Express应用程序中testing环境

我刚刚开始使用Node,并且一直在跟随各种教程。 我创build了一个Express应用程序,并设置了Mongoose和Jasmine。 如何configuration我的规格,以便我可以: 创build模型,在每个规范之后自动清理它们 使用不同的数据库来创buildtesting对象(比如myapp_test) 以尽可能干的方式做到这一点,即不要为每个描述块的拆卸创build一个之前/之后的块 ?

没有堆栈跟踪茉莉节点错误

我正在使用node.js和jasmine-node npm模块来运行testing。 除非代码产生错误,否则这完美地工作。 我没有堆栈跟踪。 例如,我的一个testing只输出这个: Error: TypeError: Cannot read property 'length' of undefined 没有堆栈跟踪。 这使得我发现这些错误非常耗时,我正在寻找茉莉花节点的替代品。 如何让茉莉花节点输出带有错误的完整堆栈跟踪? –verbose命令行标志不会这样做。

茉莉花节点的目的是什么?

我可以用jasmine-node或jasmine来运行我的规格。 他们都运行我的规格。 那么, jasmine-node添加了什么值? 自述文件说: 这个node.js模块在node.js中提供了精彩的Pivotal Lab的jasmine规范框架。 https://github.com/mhevery/jasmine-node/blob/master/README.md 我不明白。 我的应用程序运行在node ,我的规范require节点模块..所以当我运行jasmine ,我已经使用node和jasmine 。 jasmine-node添加什么? 我特别不是要问为什么jasmine-node是你最喜欢的,或其他图书馆的build议的意见。 我只想知道, jasmine-node的目的是什么?

REPL工具angular/茉莉/业力

我想在ruby中有类似binding.pry的东西,基本上,我想能够添加一行到我的代码,并有一个debugging器停在那里,而业力运行我的angular度/茉莉花testing it('runs my jasmine test', function () { var a = true; binding.pry // stops code and enters REPL prompt expect(a).toBe(true); }); 结果将是一个提示 # 我可以在那个时间点对那个范围内的variables做些事情 # a = false; 然后我可以退出并继续执行。 # exit 就像使用开发工具进行debugging一样,但是我希望在浏览器环境之外,以及在业务stream程之内。 我也发现https://github.com/alidavut/locus ,但它似乎不在业力下的业力。

使用量angular器给出错误进行端到端testing

我正在尝试通过angularjs.org的angular-phonecat中的教程。 在stetp三,我得到错误的量angular器端到端testing。 这是错误代码。 Using ChromeDriver directly… Cannot read property 'matcherFn_' of undefined [launcher] Runner Process Exited With Error Code: 1 npm ERR! angular-phonecat@0.0.0 protractor: `protractor test/protractor-conf.js` npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the angular-phonecat@0.0.0 protractor script. npm ERR! This is most likely a problem with the angular-phonecat package, npm ERR! […]

无法为茉莉花设置超时时间

我已经在这个答案中尝试了所有的解决scheme,但没有一个为我工作。 我使用jasmine v2.3.2和jasmine-core v2.3.4 当我做这个testing时: jasmine.DEFAULT_TIMEOUT_INTERVAL= 999999; describe('tests content controller', function(){ //… fit('/content should return 200',function(done){ request(app) .get('/content?type=script') .set('Authorization', "bearer " + requestor.token) .set('Accept', 'application/json') .expect(200) .end(function (err, res) { if (err) done.fail(err); expect(res.statusCode).toBe(200); console.log('got here'); console.log(jasmine.DEFAULT_TIMEOUT_INTERVAL); //prints 30000 done(); }) },999999); 我在控制台上看到,请求只需要3000毫秒。 我什至看到我got herelogin。 显示超时的日志输出30000而不是像我所期望的999999 。 我也得到了这个testing失败的消息: Message: Error: Timeout – Async callback was […]