Meteor 仅为使用Jasmine包的测试运行代码
我正在我的应用程序中使用Meteor 仅为使用Jasmine包的测试运行代码,meteor,jasmine,meteor-jasmine,Meteor,Jasmine,Meteor Jasmine,我正在我的应用程序中使用sanjo:jasmine和velocity:html reporter包来尝试并实现一些单元和集成测试。以本教程为指导,我完成了一些单元测试和一些集成测试。我无法弄清楚的是如何让代码在“测试”环境中运行,该环境不是单元测试或集成测试的一部分,但需要在测试之前运行,并且只针对测试 我试图解决的是,我需要一些为测试而创建的虚拟用户,但我不希望他们出现在我的生产应用程序中。有点像“初始化”阶段,您可以在其中构建模型并插入所需的任何数据。有没有办法做到这一点 我建议您使用工厂为
sanjo:jasmine
和velocity:html reporter
包来尝试并实现一些单元和集成测试。以本教程为指导,我完成了一些单元测试和一些集成测试。我无法弄清楚的是如何让代码在“测试”环境中运行,该环境不是单元测试或集成测试的一部分,但需要在测试之前运行,并且只针对测试
我试图解决的是,我需要一些为测试而创建的虚拟用户,但我不希望他们出现在我的生产应用程序中。有点像“初始化”阶段,您可以在其中构建模型并插入所需的任何数据。有没有办法做到这一点
- -Meteor.js的假文本和数据生成器
- -用于创建测试数据或生成夹具的包
meteor添加防伪dburles:factory
server/seeds.js
的文件,其中包含以下内容:
Meteor.startup(function() {
Factory.define('user', Users, {
username: "test-user",
name: "Test user",
email: "test@example.com"
// add any other fields you need
});
var numberOfUsers = 10;
// Ensure this is the test environment
if (process.env.NODE_ENV === 'test') {
// Create the users from the factory definition
_(numberOfUsers).times(function(n) {
Factory.create('user');
});
}
});
对于任何数据,而不仅仅是用户,您都可以遵循工厂的方法
<强>如果您的用户需要登录,例如当您使用<代码>帐户:Base< /C> >时,我会考虑使用工厂数据的另一种方法:
var email = "test@example.com";
var password = "secret";
var name = "Test user";
Accounts.createUser({email: email, password: password, profile: {name: name}});
有关更多详细信息,请参阅Meteor文档。我一直在使用mike:mocha,只要您的规范写在名为tests(然后分别写在client/server)的文件夹中,Velocity就会将数据放入Velocity特定的集合中。我使用相同的Meteor方法在我的主应用程序中插入文档,但velocity知道如何将其放入镜像版本 如果您使用的是
sanjo:jasmine
您可以在编写规范之前(在descripe
之后和it
之前)将数据插入镜像数据库,并且该数据将可用于所有规范
此外,您可以使用beforeach()
为每个规格提供数据,然后可以使用afterEach()
将其删除
您可以找到更多信息。完美!效果很好。