Meteor 如何将laika测试从测试成功插入更改为测试失败插入?
我已从客户端更新了允许和拒绝规则。客户端不允许进行插入、更新或删除操作。之前,下面列出的这个测试通过了,因为它测试了客户端是否可以插入到集合中。现在我想切换这个测试,以确保测试只在客户端无法插入到集合中时通过 这是怎么做到的Meteor 如何将laika测试从测试成功插入更改为测试失败插入?,meteor,laika,Meteor,Laika,我已从客户端更新了允许和拒绝规则。客户端不允许进行插入、更新或删除操作。之前,下面列出的这个测试通过了,因为它测试了客户端是否可以插入到集合中。现在我想切换这个测试,以确保测试只在客户端无法插入到集合中时通过 这是怎么做到的 //tests/tests.js var assert = require('assert'); suite('Donate', function() { test('in the server', function(done, server) { serve
//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'});
});
});
你可能用了错误的方法。测试是否如预期的那样拒绝插入实际上是在测试已经测试过的流星核心。换句话说,您应该测试为insert deny属性返回false的方法。如果您所做的只是:
Donate.deny({
insert: function(){
return false;
}
)};
那么你就不需要进行测试了,因为流星核心的测试足以让你知道这是可行的
另一方面,如果你有
function complexDenyFunction(){
//perform complex actions
//if all complex conditions are satisfied
//return true
//else return false
return result;
}
Donate.deny({
insert: complexDenyFunction
});
然后,您要做的是创建场景,其中complexDenyFunction将返回true和false,并测试complexDenyFunction以查看是否返回预期结果谢谢。我在laika文档中找不到任何关于如何测试错误结果的内容。@JoshOne您可以简单地使用assert.equalcomplexDenyFunction,false