在测试中隔离 mongo 操作
isolating mongo operations in tests
我在 Ruby 应用程序(使用 Sequel)中使用以下代码在测试用例之间回滚数据库:
RSpec.configure do |config|
config.around(:each) do |example|
DB.transaction(:rollback=>:always, :auto_savepoint=>true){example.run}
end
end
我希望在我的 Mongo 测试中有类似的东西,但我只能找到一个 manual process 需要大量关于我要回滚的数据的特定信息.我想要一些更通用的东西,类似于上面的 ruby 片段,它只会将数据库恢复到每个测试块之前的状态。
例如:
// psuedocode
var db = mongoose.connect('test-db');
afterEach(function () {
db.rollback();
});
MongoDB 不支持事务 (http://docs.mongodb.org/manual/faq/fundamentals/)。如果要使用事务,则必须使用不同的数据库。大多数 SQL 数据库都支持事务。
截至 2018 年,Mongo4 和 Mongoose 5.2 支持交易
我在 Ruby 应用程序(使用 Sequel)中使用以下代码在测试用例之间回滚数据库:
RSpec.configure do |config|
config.around(:each) do |example|
DB.transaction(:rollback=>:always, :auto_savepoint=>true){example.run}
end
end
我希望在我的 Mongo 测试中有类似的东西,但我只能找到一个 manual process 需要大量关于我要回滚的数据的特定信息.我想要一些更通用的东西,类似于上面的 ruby 片段,它只会将数据库恢复到每个测试块之前的状态。
例如:
// psuedocode
var db = mongoose.connect('test-db');
afterEach(function () {
db.rollback();
});
MongoDB 不支持事务 (http://docs.mongodb.org/manual/faq/fundamentals/)。如果要使用事务,则必须使用不同的数据库。大多数 SQL 数据库都支持事务。
截至 2018 年,Mongo4 和 Mongoose 5.2 支持交易