2

我在使用 jasmine-jquery 插件运行我的 Jquery 测试时遇到了困难。以下是我采取的步骤:

  1. 宝石安装茉莉花
  2. 茉莉花初始化
  3. 将 jquery 和 jasmine-jquery 添加到 helpers 文件夹
  4. 这是我的存储库https://github.com/shenst1/jasminesample

以下是我按照这些教程推荐的规格:https ://www.youtube.com/watch?v=3Huh44nsZTw

describe("My Feature", function() {
  it("should add numbers", function() {
    expect(1+1).toBe(2);
   });
 });
describe("experimentation", function() {
  var elem;
  beforeEach(function() {
  elem = $('<div id="container"><p>Hello World</p></div>');
  });
  it("allows us to serach with Css selectors", function() {
   expect(elem).toBe('#container');
   expect(elem).toContainElement('p');
    expect(elem).toEqual('#container');
   expect(elem).toEqual('p')
  });
 });

第一个规范按预期通过,但带有 jquery 的第二个规范失败并出现以下错误:

    Expected { 0 : HTMLNode, length : 1 } to be '#container'.
    Error: Expected { 0 : HTMLNode, length : 1 } to be '#container'.
    at stack (http://localhost:8888/__jasmine__/jasmine.js:1293:17)
    at buildExpectationResult (http://localhost:8888/__jasmine__/jasmine.js:1270:14)
    at Spec.Env.expectationResultFactory        (http://localhost:8888/__jasmine__/jasmine.js:484:18)
    at Spec.addExpectationResult (http://localhost:8888/__jasmine__/jasmine.js:260:46)
    at Expectation.addExpectationResult (http://localhost:8888/__jasmine__/jasmine.js:442:21)
    at Expectation.toBe (http://localhost:8888/__jasmine__/jasmine.js:1209:12)
    at Object.<anonymous> (http://localhost:8888/__spec__/testSpec.js:12:18)
    at attemptSync (http://localhost:8888/__jasmine__/jasmine.js:1510:12)
    at QueueRunner.run (http://localhost:8888/__jasmine__/jasmine.js:1498:9)
    at QueueRunner.execute (http://localhost:8888/__jasmine__/jasmine.js:1485:10)
TypeError: Object #<Expectation> has no method 'toContainElement'
TypeError: Object #<Expectation> has no method 'toContainElement'
    at Object.<anonymous> (http://localhost:8888/__spec__/testSpec.js:13:18)
    at attemptSync (http://localhost:8888/__jasmine__/jasmine.js:1510:12)

看起来 jquery 匹配器没有正确加载。它似乎正在将对象转换为字符串,而不是检查 html 元素。我尝试使用 Support Jasmine v2.0(版本 1.5.92)中的 jasmine-jquery.js 版本,但失败并出现相同的错误。我是否需要回滚 jasmine 版本以支持 Jquery,或者我只是错过了一些关于如何使其与 jquery 一起工作的内容?谢谢,安德鲁

4

1 回答 1

3

我维护 jasmine jquery,几分钟前我刚刚添加了对 jasmine v2 的支持。https://github.com/velesin/jasmine-jquery/

于 2014-01-13T23:45:24.473 回答