草庐IT

integration-testing-mongodb-sprin

全部标签

mongodb - 如何正确使用 ObjectID 的 bson.MarshalJSON(myStruct)?

当我从我的数据库中抓取一个帖子并尝试将其呈现为JSON时,我遇到了一些问题:typePostBSONstruct{Idbson.ObjectId`bson:"_id,omitempty"`Titlestring`bson:"title"`}//...postBSON:=PostBSON{}id:=bson.ObjectIdHex(postJSON.Id)err=c.Find(bson.M{"_id":id}).One(&postBSON)//...response,err:=bson.MarshalJSON(postBSON)MarshalJSON不为我处理十六进制Id(ObjectI

unit-testing - 您将如何对一个唯一目的是进行数据库调用的方法进行单元测试?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭5年前。Improvethisquestion我有这样的方法:func(alert*Alert)CreateAlert(db*mgo.Database)error{returndb.C("alerts").Insert(&alert)}我应该如何对此进行单元测试?如果我只是调用此方法进行uni测试,那么我将不得不创建调用的测试数据库。我以某种方式觉得这将是集成测试的一部分,因为我们正在调用DB。如果我模拟db对象,那么它永远不会测试实

mongodb - 确保 MongoDB 以动态时间间隔使数据过期并且调用是幂等的

我正在使用MongoDB将用户生成的链接保存在存储器中。用户可以说明他们希望URL在过期之前保存多长时间。每个用户ID也是唯一的。理想情况下,我希望我的请求是幂等的。我想调用尽可能多的电话,而不必检查最后一次电话是否有到期值。我下面的代码似乎给了我:“名称为creationtime_1的索引已存在,但选项不同”或索引不存在。这是我第一次使用MongoDB,如果有任何见解,我将不胜感激。我想我也可能对我的代码进行了冗余检查,但我不知道该怎么做```//mongosettingssessionTTL:=mgo.Index{Key:[]string{"creationtime"},Uniqu

mongodb - 如果将 bson ObjectId 传递给 golang 中的 GridFS OpenId(),我会收到错误 "not found"

我正在尝试使用GoLang中的GridFS从MongoDB读取视频文件。这是我的代码片段,videoIDHex:=bson.ObjectIdHex("5966e9ca0531713218127ddd")file,err:=mongoDatabase.GridFS("collection_files").OpenId(bson.M{"_id":videoIDHex})iferr!=nil{log.Println("Errorfindingthevideo:",err)}当我运行它时,我总是得到错误,notfound但是,当我尝试使用find时,它工作正常。我可以通过以下方式获取文档,vi

mongodb - Mgo 插入命令不创建数据库或插入文档

我的目标是实现这个code.除了不使用sql,我想使用mongoDB。我认为我处理session的方式存在问题。我正在尝试使用mgo通过RestAPI将一些用户数据插入到MongoDB中。每当我打开mongoshell并运行showdbs命令时,都不会显示pollDB。我正在使用Postman来测试RestAPI。任何想法我在插入过程中可能做错了什么?我尝试先在mongoshell中创建集合,然后运行​​CreateUser函数,但我仍然没有看到创建了pollDB。用户typeUserstruct{Idbson.ObjectId`json:"id"bson:"_id,omitempty

mongodb - 将 MongoDB 函数 foreach 转换为 mgo (Golang) 函数

这个函数试图通过它的值更新匹配的代码rescollection具有Marque的代码,它将与doc.Marque进行比较,如果是这样,它将被替换通过品牌值(value)。此代码在mongoDBCLI中完美运行,但因为我正在使用GO。我试图将它转换成mgo如下所示,但它不起作用,我没有在mgo中找到foreach函数,有什么需要的吗在这种情况下替换为?谢谢你的帮助db.res.find().forEach(function(doc){varv=db.brands.findOne({code:doc.Marque});if(v){db.res.update({"Marque":doc.Ma

java - Spring xml + JUnit - xml 上下文文件在 src/test/resources 中不起作用但在 src/main/resources 中起作用

我遇到这样的junit测试问题。出于某种原因,spring上下文文件只有在我将它们放在maven项目的src/main/resources文件夹中时才有效。Intellij没有给我任何警告,但来自mvn和idebomb的junit测试运行程序。两种情况下的代码和输出如下:@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration({"classpath:/test-applicationContext.xml"})publicclassDataSharingTest{AuthTokenServiceauthTokenServ

c++ - 在 main() 中的 Google Tests 中创建 xml 报告

是否可以通过在main()中要求GoogleTest输出xml文件?我知道我可以更改系统环境变量(真的有人这样做吗?),或使用命令行参数--gtest_output="xml:_path_to_output_file_".我想做的是让我的程序每次都使用基于项目名称的文件名自动生成xml。当然-它不会发生在我的电脑上......我查看了InitGoogleTest,但我看不到任何可以触摸的东西。(我想编写实际代码,而不是在后期构建中运行我的程序)。有什么选择吗? 最佳答案 您可以简单地分配GTEST_FLAG(output)="xml

java - eclipse 中的 log4j2.xml 和 log4j2-test.xml

我的eclipse类路径中有这两个日志文件,分别位于src/main/resources和src/test/resources中。问题是log4j2-test.xml具有更高的优先级,并且在运行我的应用程序时始终是选择的配置文件。我如何告诉Eclipse在运行我的应用程序时忽略log4j2-test.xml并使用log4j2.xml并回退到log4j2-test.xml什么时候运行单元测试? 最佳答案 只是为了有人像我一样还有一些大麻烦。一个可行的解决方案是:创建一个包含并提供log4jjar文件的插件MyLog4J。在MyLog4

java - Spring Integration http 出站网关 POST 响应不包含转义的符号

收到的原始POST响应包含如下所示的XML,其中转义了符号&test&test但Java应用程序正在接收它,如下所示,其中&未转义:test&test我更愿意接收转义和号的原始XML&在XML中。用于处理POST请求响应的SpringIntegration配置如下:我想知道我是否遗漏了上述配置中的任何内容。&可能是什么原因自动转换为&在我从POST响应中提取的有效负载中。我注意到的另一件有趣的事情是服务器端何时发送>符号示例test>test我收到的是一样的,即test>test;但是如果服务器同时发回>和&在一起的例子t