使用 MongoDB 时进行框架测试和访问会话对象

发布于 2024-11-24 05:21:02 字数 355 浏览 2 评论 0原文

在 play 框架 application.conf 中有几行:

%test.db.url=jdbc:h2:mem:play;MODE=MYSQL;LOCK_MODE=0
%test.jpa.ddl=create

But I am using MongoDB with Morphia.如何更改上述测试设置? 请注意,我没有使用 play 框架吗啡模块。

从技术角度来看,每个单元测试都会有自己的内存实例 mongodb 测试数据库。如何做到这一点?

此外,当我在功能测试和单元测试中的测试代码中使用会话对象时,我得到编译错误值“session not found”。如何在测试代码中访问会话?

In play framework application.conf there are lines:

%test.db.url=jdbc:h2:mem:play;MODE=MYSQL;LOCK_MODE=0
%test.jpa.ddl=create

But I am using MongoDB with Morphia. How do I change above settings for testing?
Note that I am not using play framework morphia module.

From technical point of view, each unit test would have its own in memory instance of
mongodb test database. How to make that happen?

Also when I use session object in test code both in functional and unit tests, I get compile error value session not found. How to access session in test code?

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

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

发布评论

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

评论(1

開玄 2024-12-01 05:21:02

没有办法修改这些设置来创建“mongodb 的内存实例”。如果您希望每个单元测试都有一个干净的数据库副本,则必须设置和保存数据库。为每个测试在 mongodb 中拆卸数据库的新副本。

您可以使用 Scope.Session.current() 在功能测试中直接获取会话 cookie。

There isn't a way to modify those settings to create an "in memory instance of mongodb". If you want each unit test to have a clean copy of the database, you'll have to setup & teardown a new copy of your database in mongodb for each test.

You can grab the session cookie directly in your functional tests using Scope.Session.current().

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