首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将laika测试从测试成功插入更改为失败插入测试?

如何将laika测试从测试成功插入更改为失败插入测试?
EN

Stack Overflow用户
提问于 2014-08-19 02:45:01
回答 1查看 33关注 0票数 0

我已经更新了客户端的允许和拒绝规则。任何插入、更新或删除都不应在客户端工作。以前,这个测试(下面列出)通过是因为它测试了客户端是否可以插入到集合中。现在,我想切换到测试,确保只有当客户端无法插入集合时,测试才会通过。

这是怎么做的?

代码语言:javascript
复制
//tests/tests.js
var assert = require('assert');

suite('Donate', function() {
  test('in the server', function(done, server) {
    server.eval(function() {
      Donate.insert({fname: 'George'});
      var docs = Donate.find().fetch();
      emit('docs', docs);
    });

    server.once('docs', function(docs) {
      assert.equal(docs.length, 1);
      done();
    });
  });
});

  test('using both client and the server', function(done, server, client) {
    server.eval(function() {
      Donate.find().observe({
        added: addedNewDonate
      });

      function addedNewDonate(donate) {
        emit('donate', donate);
      }
    }).once('donate', function(donate) {
      assert.equal(donate.fname, 'George');
      done();
    });

    client.eval(function() {
      Donate.insert({fname: 'George'});
    });
  });
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-19 09:27:44

你可能走错路了。测试看看插入是否按预期被拒绝,实际上是测试已经测试过的Meteor核心。换句话说,您应该测试为insert属性返回false的方法。如果你所做的就是:

代码语言:javascript
复制
    Donate.deny({
      insert: function(){
        return false;
      }
    )};

那么您就不需要对此进行测试了,因为Meteor内核已经经过了足够的测试,您可以知道这是可行的。

另一方面,如果你有类似的

代码语言:javascript
复制
    function complexDenyFunction(){
      //perform complex actions 
      //if all complex conditions are satisfied 
      //return true
      //else return false
      return result;
    }

    Donate.deny({
      insert: complexDenyFunction
    });

然后,您要做的是创建场景,其中complexDenyFunction将返回truefalse,并测试complexDenyFunction,以查看是否返回预期的结果

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25374952

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档