当前位置: 首页 > 知识库问答 >
问题:

忽略了带有jasmine节点的Frisby JS中的儿童测试

薛博赡
2023-03-14

我使用Frisy和jasmine-node来测试一个Meteor API。

我想测试在聊天应用程序中删除讨论。为此,我需要在聊天中创建一个新的讨论,并在讨论中添加一条消息

我注意到如果我把它放在第二秒之后,我的测试就会失败。then()方法。第三次之后也失败了。然后()。但是,它在第一次之后可以正常工作。then()方法。

带有显式失败测试expect(false)的示例代码。toBe(真);:

var frisby = require('frisby');
describe("chat update", function() {
  it("message added", function(done) {
    frisby.post('http://localhost:3000/api/chat', {
      name: "remove"
    })
    .then(function (res) {
      let id = res._body.id;
      expect(false).toBe(true); // (1) it fails the test
      frisby.post('http://localhost:3000/api/chat/'+id+'/addmessage', 
        {
          auteur: "Samuel",
          message: "My message"
        }
      )
      .then(function (res) {
        expect(false).toBe(true); // (2) Without (1) it's ignored by frisby
        frisby.post('http://localhost:3000/api/chat/remove', 
          {id: id}
        )
        .then(function (res) {
          expect(false).toBe(true); // (3) Without (1) it's ignored by frisby
        })
      });
    })
    .done(done);
  })
});

如果我运行测试,由于expect(false),它将失败。toBe(真);// (1)测试线不合格。如果我删除这一行,测试就会运行,jasmine会正确地验证它。

你知道不忽视(2)和(3)测试的方法吗?

共有1个答案

蒙经纶
2023-03-14

最后,我找到了解决方案。这是因为我忘记返回所有 frisby 操作(第一个除外),如下面的代码所示:

var frisby = require('frisby');
describe("chat update", function() {
  it("message added", function(done) {
    frisby.post('http://localhost:3000/api/chat', {
      name: "remove"
    })
    .then(function (res) {
      let id = res._body.id;
      return frisby.post('http://localhost:3000/api/chat/'+id+'/addmessage', 
        {
          auteur: "Samuel",
          message: "My message"
        }
      )
      .then(function (res) {
        return frisby.post('http://localhost:3000/api/chat/remove', 
          {id: id}
        )
        .then(function (res) {
          expect(false).toBe(true); // Will fail the test
        })
      });
    })
    .done(done);
  })
});

您可能会注意到在frisby.post()之前的返回操作符。希望有帮助!

 类似资料:
  • 问题内容: 我想查找包含字符串的行,如下所示: 但是,这失败了,因为某些元素是NaN: ValueError:无法使用包含NA / NaN值的向量建立索引 所以我诉诸于混乱 有没有更好的办法? 问题答案: 有一个标志: 参见文档: na:默认NaN,填充缺失值的值。 因此,您可以执行以下操作:

  • 昨天我在我的项目中添加了,现在当我离开并回到导航中的元素时,它会重新加载Sky,我得到 警告:儿童(…):遇到两个具有相同密钥的子项,。子密钥必须是唯一的;当两个子项共享密钥时,将只使用第一个子项。 (上面使用的数字50只是一个例子,它每次抛出这个错误~40次,都是不同的id) 这个问题似乎源于我的文件: 因为每次我进入另一个屏幕时,这个组件都会卸载,然后在我回来时重新安装。 当完成时,创建了一组

  • 我希望一个标签的所有子项没有标签之间的空白。但是美丽的汤和也返回标记之间的空白。 这张照片是: 同 我想要的是: 有没有办法告诉BeautifulSoup只返回标签而忽略空白? 文档对此主题没有多大帮助。示例中的html在标记之间不包含任何空格。 事实上,去除html标记之间的所有空白可以解决我的问题: 使用这个html,我得到的标签之间没有空格,因为标签之间没有空格。但是我希望使用Beautif

  • 我正在尝试创建一个通用的绑定文件,在多个项目中从WSDLs/XSD生成一致的Java类。我们通过(由@lexicore制作)生成代码。 问题在于多项目部分。如果特定的绑定指令与提供的XSD或WSDL中的任何内容都不匹配,则类生成失败 对“

  • 问题内容: 我正在开发一个NodeJs应用程序,该应用程序从FB接收一个事件并将其放入本地数据库。对于api查询首页中的每个事件,除最后一个事件外,一切正常。 我收到以下错误: [2016年12月1日,下午1:48:39] TypeError:无法读取IncomingMessage上未定义的属性“名称”。(/home/node/virgo/app.js:217:32)在IncomingMessag