草庐IT

java - 如何生成源代码来创建我正在调试的对象?

我的典型场景:我处理的遗留代码有一个只有生产中的客户有的错误我附加了一个调试器,并找出如何在他们的输入的情况下在他们的系统上重现该问题。但是,我不知道为什么会发生错误。现在我想在我的本地系统上编写一个自动化测试来尝试重现然后修复错误最后一步真的很难。输入可能非常复杂并且包含大量数据。手动创建输入(例如:Pp=newP();p.setX("x");p.setY("x");想象这样做1000次以创建对象)非常繁琐且容易出错。事实上,您可能会注意到我刚才给出的示例中有一个拼写错误。是否有一种自动方法可以从我的调试器中的断点获取一个字段并生成将创建该对象的源代码,并以相同的方式填充?我唯一想到

java - 流<流> : flatMap vs. 减少

这个问题在这里已经有了答案:Whyfilter()afterflatMap()is"notcompletely"lazyinJavastreams?(8个答案)关闭6年前。如果我执行以下“连接”两个流的代码首先通过flatMappingaStream>然后通过减少Stream>使用Stream.concat()我在这两种情况下都获得了相同的正确结果,但过滤操作的次数不同。publicclassFlatMapVsReduce{publicstaticvoidmain(String[]args){Listlist=Arrays.asList(1,2,3,4,5,6,7,8,9);Predi

java - 测试分布

在我的工作中,我们正在运行一组测试,其中包含大约3,000个单独的测试用例。以前我们在一台机器上运行整个测试套件,大约需要24-72小时才能完成整个测试运行。我们现在已经创建了我们自己的系统,用于在大约三台独立的机器上分组和分发测试,并且对测试进行优先级排序,以便首先运行核心测试以获得更直接的结果,并在有可用机器时运行额外测试。我很好奇是否有人找到了一种在多台机器上分发测试以减少完整运行的总测试时间的好方法,以及使用了哪些工具来实现这一目标。我做了一些研究,看起来TestNG是movinginthisdirection,但看起来它仍在相当大的开发中。我们不打算重写我们的任何测试,但随着

java - 使用 JUnit 测试异步代码

我想测试一些依赖于网络传输的代码。该代码发出请求并提供回调-当请求完成时,将触发回调。我想模拟网络传输,并使用Thread.sleep来模拟一些延迟......当然这会使整个测试暂停。到目前为止,我一直在创建新线程并在整个测试过程中使用CountDownLatches来阻止测试在触发回调之前结束。我的模拟网络对象创建一个新线程,在该线程上hibernate,然后触发回调。这实际上工作得很好,但问题是回调中的任何断言错误都没有报告给原始的junit线程——相反,我在控制台上收到异常文本,在那里它更难理解和使用。我希望有:一种将派生线程的assertEquals输出通过管道传输到主JUni

java - Gradle,错误找不到或加载主类 'test.Main'

我在one上实现了Gradle我的项目。我将Netbeans8.02与gradle插件一起使用。结构应该是这样的,源码在jgli/src/main/java/下,资源在jgli/src/main/resources/下>主类是jgli/src/main/java/test/Main.java如果我通过ide运行它,它会在Windows上运行,它crashes在Linux上。这就是我现在尝试通过控制台运行它的原因:java-jarjgli.jar但我不断得到:Errorcouldnotfindorloadmainclass'test.Main'这是我的build.gradleapplyp

java - 配置 maven-failsafe-plugin 以查找不在 src/test/java 中的集成测试

我的目录结构是这样的:src/integrationTest/javasrc/test/javasrc/main/java我正试图通过故障保护来进行集成测试,但未能按照我希望的方式进行。我试过这个:maven-failsafe-plugin2.17integration-testverifysrc/integrationTest/java${project.build.directory}/it-classes还有这个:maven-failsafe-plugin2.17integration-testverifysrc/integrationTest/**/*.java无济于事;fai

java - 名称冲突 : The method add(Object) of type test2 has the same erasure as add(E) of type HashSet<E> but does not override it

导入java.util.*;classAextendsHashSet{publicbooleanadd(Objectobj){//compilererrorreturntrue;}}orclassAbc{publicvoidadd(Tt){}//compilererrorpublicvoidadd(Objecti){}//compilererror(can'toverload?)}错误:名称冲突:test2类型的方法add(Object)与HashSet类型的add(E)具有相同的删除,但没有覆盖它我不知道上述错误背后的概念是什么,有人可以建议我在哪里可以研究这个概念吗?

java - SonarQube 问题 "Add at least one assertion to this test case"用于带有断言的单元测试?

我在使用SonarQube时遇到问题,我的几个单元测试出现了问题,提示了以下问题:Addatleastoneassertiontothistestcase.每个测试用例都类似于这种格式(其中许多断言被委托(delegate)给具有公共(public)断言的方法,以避免重复):@TestpublicvoidcompanyNameOneTooLong()throwsException{AddressFormBeanformBean=getValidBean();formBean.setCompanyNameOne("123456789012345678901234567890123456"

java - 是否有像 SoapUI 那样用于 Java RMI 测试的工具用于 Web 服务?

我正在寻找可以连接到RMI服务并显示结果的(GUI?)工具。有点像SoapUI如何允许您指定WSDL、生成测试输入并执行调用。我想指定一个RMI目标(即rmi://server:port/package/class.method(parameters,...))并测试RMI调用。如果它可以保存测试参数并在以后重复测试,那么我就可以将测试提供给QA了。有这样的工具吗? 最佳答案 根据Segphault的建议,您应该查看http://www.itko.com/products/java.jsp.您也可以尝试来自here的JMeterRM

Java:宏观和微观基准之间的区别

我在阅读基准测试时遇到了这些术语。我不清楚它们的确切含义。据我了解,微基准测试是对应用程序的一个非常小的功能进行基准测试。在Java编程中,一个例子就是HashMap的性能。宏观基准更多地处于应用程序级别,基于客户的需求。按照我的示例,宏基准测试将对缓存应用程序进行基准测试。任何人都可以阐明这一点并验证我所理解的是否正确吗? 最佳答案 你的解释几乎涵盖了它:摘要由Rachasatish提供并取自他的blog1Micro-benchmarks(repeatablesectionsofcode)canbeusefulbutmaynotr