草庐IT

Java模拟星空

全部标签

java里面获取map的key和value的方法

获取map的key和value的方法分为两种形式:map.keySet():先获取map的key,然后根据key获取对应的value;map…entrySet():同时查询map的key和value,只需要查询一次;两者的性能比较可以查看map.keySet()和map.EntrySet()的比较。以下是获取map的key和value,以及map里面的元素通过key或者value来比较大小并排序;注意:当map的value值相等时,根据key值进行排序publicclassMapSort{publicstaticvoidmain(String[]args){Mapmap=newHashMap(

java - 在 Eureka Server 中,发现和注册服务/应用程序不是在 Spring 中开发的

如何在EurekaServer中发现和注册没有使用Spring(例如,在Java-JEE和Go上)构建的Web应用程序?在Spring-Boot应用程序中,很容易添加这些注释:@EnableDiscoveryClient@SpringBootApplication之前publicclassEurekaClientApp{publicstaticvoidmain(String[]args){SpringApplication.run(EurekaClientApp.class,args);}}在配置中,application.propertieseureka.client.registe

go - 用模拟编写单元测试

我在里面写了一个RESTapi。现在我想通过隔离不同的组件来对其进行单元测试。项目结构如下所示,有两个主要包├──main.go├──routes│├──routes.go│└──routes_test.go├──db│└──db.goma​​in.go:项目的主要入口点routes/routes.go:HTTP路由处理包db/db.go:数据库处理器包现在,当我测试http路由时,我只想测试请求是否被路由到正确的处理程序函数,然后它们会做出相应的响应。在实际应用程序中,处理函数实际上会插入/更新数据库,但我不想在测试时这样做。因此,如果我可以模拟一个数据库对象并使我的处理程序函数针对

java - 如何使用 gorm 动态添加查询参数?

我是golang开发的新手。我有6个参数要使用gorm传递给查询。这是选择查询,因此,我们需要根据输入值过滤值。因此,我们需要将过滤器动态传递到查询中。我试过了,但没有解决方案。funcGetUsers(DB*gorm.DB,Offsetint,Limitint,Useruibackendmodels.UserDetails)(Users[]uibackendmodels.UserDetails,Err错误){query:="SELECTuserid,username,nickname,email,mobile,location,status,roleids,trsids,brandi

mongodb - 在 Go 中模拟 MongoDB 响应

我正在从MongoDB获取文档并将其传递给函数transform,例如vardocmap[string]interface{}err:=collection.FindOne(context.TODO(),filter).Decode(&doc)result:=transform(doc)我想为transform编写单元测试,但我不确定如何模拟来自MongoDB的响应。理想情况下,我想设置这样的东西:funcTestTransform(t*testing.T){byt:=[]byte(`{"hello":"world","message":"apple"}`)vardocmap[stri

go - 使用 go-mocket 模拟 GORM 数据库不起作用

我正在尝试使用go-mocket来模拟gorm数据库,但它无法正常工作。我没有向我的ClusterExists函数发送任何模拟数据,因此单元测试无法按预期工作。在文档中有两种模拟“简单链用法”和“FakeResponse”的方法。我已经尝试了两种方法,但都不起作用。我的功能:funcClusterExists(cluster*Cluster,db*gorm.DB)bool{c:=Cluster{}exists:=!db.Where("cluster_name=?ANDenv_type=?",cluster.ClusterName,cluster.EnvType).First(&c).R

java - 带有数据流的 Apache Beam Go SDK

我一直在使用GoBeamSDK(v2.13.0),但无法获得wordcountexample致力于GCP数据流。它进入崩溃循环以尝试启动org.apache.beam.runners.dataflow.worker.DataflowRunnerHarness。该示例在使用Directrunner在本地运行时正确执行。该示例与上面给出的原始示例完全没有修改。堆栈跟踪是:org.apache.beam.vendor.grpc.v1p13p1.com.google.protobuf.InvalidProtocolBufferException:Protocolmessagehadinvali

go - 模拟外部库以进行单元测试

我有一个下面的函数tryGet()来进行单元测试:typeconfigstruct{Keystring`json:"key"`Clienttodo.Client`json:"client"`}varinstance*configfunc(c*config)tryGet()error{client:=&http.Client{}tClient:=Client{"http://url",client}configValues:=config{"Key",tClient}Instance:=&configValueserr:=Instance.Client.perform("GET",hea

unit-testing - 如何为另一个包中的方法编写模拟代码

我正在为service.go设置service_test.go。在service.go中,方法是从dao.go中调用的。所以我需要模拟这个dao方法。但我不确定如何编写此模拟方法的代码。这是存储库结构。article├client├api│├main.go│├contoroller││└contoroller.go│├service││└service.go│├dao││└dao.go│├go.mod│├go.sum│└Dockerfile├nginx└docker-compose.yml服务.gofuncGetArticleService(db*sql.DB)[]util.Artic

networking - 以编程方式模拟数据包丢失和延迟

我有一个通过rpc公开其服务的服务器和一个使用这些服务的客户端。为了测试此设置,我需要引入数据包丢失和延迟。我在stackoverflow上发现了一些技术,如tc、修改iptables等,但它们都需要root密码来模拟丢包。有没有一种方法可以在不需要root密码的情况下模拟这些数据包丢失。注意:代码是用GO编程语言编写的 最佳答案 一种方法是隔离您的数据包处理代码,并创建它的模拟版本(或ifdef'd部分),用于测试,以您选择的方式行为不当。这可能足以满足您的需求。对于商业或关键应用程序的工业强度测试,您至少需要一个有root密码的