Rails 3:如何在RSpec/Selenium等中使用测试数据库?

发布于 2024-11-06 14:02:46 字数 144 浏览 0 评论 0原文

我有很多测试,例如创建用户、更新等。在某些控制器中,我可以访问 Mongo 数据库。问题是它在进行测试时也会访问它,将数据添加到数据库中。

有没有办法阻止对该代码的测试套件的访问?每次我运行测试时都会得到超过 100 行,这变得很烦人。

谢谢

I have many tests like creating user, updating, etc. In some of the controllers I have access to a Mongo Database. The problem is that it also accesses it when doing the tests, adding data to the database.

Is there a way to block access to the test suite to that code? It becomes annoying every time I run the tests I get more 100 rows.

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

神魇的王 2024-11-13 14:02:46

您是否在database.yml中定义了对mongo数据库的访问?如果是这样,请为测试环境建立一个连接:

development: &default_settings
  database: APPNAME_development
  host: 127.0.0.1
  port: 27017

test:
  <<: *default_settings
  database: APPNAME_test

如果您通过某种 Web 服务 API 访问 mongo 数据库,那么您可以使用 fakeweb 和 VCR 的组合来记录对其的请求和响应。从测试到服务的后续请求将提供缓存的响应,而不是直接命中它。

https://github.com/myronmarston/vcr

Are you defining access to the mongo database in your database.yml? If so, set up a connection for the test environment:

development: &default_settings
  database: APPNAME_development
  host: 127.0.0.1
  port: 27017

test:
  <<: *default_settings
  database: APPNAME_test

If you are accessing the mongo database through some sort of web service API, then you can use a combination of fakeweb and VCR to record the requests and responses to it. Subsequent requests from your tests to the service will serve up the cached response rather than hitting it directly.

https://github.com/myronmarston/vcr

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文