2

我正在构建一个 Rails 应用程序,它需要一些模型来与一些必要的 Java 库进行交互。为此,我想在 MRI 上使用 Rails,而不是 JRuby 或 RBJ。Java 代码只需要对 Rails 应用程序管理的数据库表的读取权限。

一种方法是设置一个读取 Rails 应用程序数据库表的 Servlet。

问题在于,在测试期间,使用 Rails 事务性固定装置会使测试期间的所有数据库活动对外部进程(如 Servlet)不可见。

对于部署来说,这不是问题,但是在这些条件下如何进行自动化测试还不是很清楚。

如何使用 RSpec 测试依赖于外部进程的 Rails 模型,这些进程可以访问 Rails 管理的表?

4

1 回答 1

2

关闭事务装置,数据库写入应该对外部进程可见。在您要使用 put 执行此操作的测试类中:

self.use_transactional_fixtures = false

或者test/test_helper.rb如果您希望它适用于所有内容,请将其放入。请注意,您的测试可能会运行得更慢,因为所有内容实际上都在访问数据库。

于 2009-01-13T06:53:55.477 回答