草庐IT

java - 如何开始使用 Jemmy 3?

我想使用Jemmyv3用于GUI测试,但我找不到任何手册或用户指南,甚至找不到使用它的示例。我找到了仅适用于Jemmyv2的文档,看起来该库已完全重写和重新设计。在Jemmyv2中我使用了:newClassReference(...).startApplication()如何使用Jemmyv3完成类似的调用? 最佳答案 这取决于您使用它的UI库。应用程序执行逻辑对于不同的库可能是不同的:AWT、FX、SWT。对于JavaFX,您可以这样做:AppExecutor.executeNoBlock(TestApp.class);

java - 在 Java Swing 中打印的单元测试

我有一些使用Swing/AWT打印功能的代码,我想对其进行单元测试。它使用系统native打印对话框,但有没有办法让JVM拦截它并在单元测试期间用模拟替换它,以便我可以获得要打印的图像副本?我的打印代码很简单,大致如下所示:Printableprintable=getPrintable();PrinterJobprintJob=PrinterJob.getPrinterJob();printJob.setPrintable(printable);if(printJob.printDialog()){try{printJob.print();}catch(PrinterException

java - 洗牌(SPOJ/Interviewstreet)

这个问题以前有人问过,但是没有一个得到明确的回答,我试着编译我在这里找到的所有信息。如有必要,请随意合并/移动到另一个stackexchange站点。以下是我发现的与此相关的问题:SPOJ:CardShufflingCardShuffling[SPOJ]该问题最初作为InterviewstreetCodeSprint发布,但现在列为apracticeproblem.它也是portedtoSPOJ.这是问题陈述:HereisanalgorithmforshufflingNcards:1)ThecardsaredividedintoKequalpiles.2)ThebottomN/Kcar

java - ContextConfiguration RunWith WebAppConfiguration 注解一起

我有注释这些注释的类:@ContextConfiguration(locations={"classpath:pathToXml.xml"})@RunWith(SpringJUnit4ClassRunner.class)@WebAppConfiguration你能解释一下我在类里面添加这些注释后有什么特点吗? 最佳答案 您将获得@WebAppConfiguration配置javadoc中描述的功能。WebApplicationContext主要改变了资源的加载方式,即具有未指定资源前缀的资源将从src/main/webapp或从va

java - Mockito:验证 boolean 方法(或其他类型)

我知道你只能验证void方法。但我实际上问自己为什么。我最近偶然发现了一个单元测试,我确实需要在其中验证某个调用是否已发出。确切地说,它是“newFolder.mkdirs()”。在我看来,这种方法的行为几乎是“空洞的”。但作为一项“功能”,开发人员为该函数提供了一个boolean返回类型,用于查看操作是否成功。很好,但在我的测试中,我不太关心我的模拟。我只是想确保完成这个调用,就像我想确保完成重要的void调用一样。那么现在有可能做到吗?我完全坚持这一点,甚至无法想象解决这个小问题的方法:/有人有一个好的、简短的想法吗?我完全错了:你可以验证一切。我放错了括号。我有:verify(n

java - 查找哪个测试覆盖了哪一行 jacoco

我在庞大的代码库上运行集成测试。在覆盖率报告中,我想知道哪个测试覆盖了代码中的某一行。有没有办法用jacoco来做? 最佳答案 以防万一有人还在寻找这个问题的解决方案。就我而言,我写了一个小demo使用Jacoco生成包含每个测试用例的覆盖行信息的覆盖率报告。基于这个项目结构,我然后简单地写了一个脚本,一个一个地自动运行测试用例,并收集每个覆盖率报告,以获取每个测试覆盖了哪些行的信息。需要注意的是,这个方案不是最好的方案(测试用例数量多的时候比较费时),只是帮我用Jacoco获取了测试用例的覆盖线信息。请引用https://gith

java - 在自动回归测试中测量执行时间的最佳方法

我有一些代码,我想测量它在自动回归测试中连续运行时的速度。这样做的目的是提醒我对代码所做的更改对性能产生了负面影响。在伪代码中,我想要这样的东西:cpuTimer.startrunTestcpuTimer.stopdiff=cpuTimer.getDurationifdiff>prevDiff//PerhapstowithinatolerancefailTest我正在为此查看ThreadMXBean#getCurrentThreadCpuTime(),但关键问题是自动化测试将在各种不同的开发人员的电脑上运行,并将自动分包给具有一系列不同的硬件和功能。这行得通吗,或者数字会出错吗?这个问

java - 测试多线程代码或确保代码是线程安全的指南

是否有任何测试多线程代码的指南(除了在问题上抛出一堆线程并祈祷)。我基本上是在寻找测试数据损坏、死锁和其他并发问题的好方法。本质上,我希望能够通过测试证明代码是线程安全的。Java中是否有任何框架可以让您轻松地为多线程场景编写测试? 最佳答案 我已经编写了很多多线程代码,但从未发现任何可以轻松测试我没有预测到的并发正确性问题的东西。大多数时候,我必须考虑它可能会崩溃的场景,然后我如何在这种情况的极端版本​​中证明它的正确性(通常使用CountDownLatches或类似工具以我认为它可能崩溃的方式弯曲它。绝对使用FindBugs和类

java - 这个循环怎么能退出呢?

所以,我进行了测试,结果对我来说毫无意义。让我们考虑以下代码:ThreadStuffCountercounter_1=newThreadStuffCounter(1);while(counter_1.doProceed){Thread.sleep(500);Threadthread=newThread(counter_1);thread.start();}使用Runnable如下:packagetest;publicclassThreadStuffCounterimplementsRunnable{publicvolatilebooleandoProceed=true;privatei

java - 使用 REST-assured 验证响应 header 中的整数值

可能是由于我对rest-assured和hamcrest匹配器缺乏经验,我还没有弄清楚如何正确地执行此断言when().get(url).then().header("my-header",lessThanOrEqualTo("60"));//shouldcompareIntegersnotStrings一个明显的解决方案是从header中提取值,将其转换为Integer,然后手动执行断言。但是,这会有点破坏放心工作的美好。有没有一种方法可以在不使测试膨胀的情况下进行正确的比较? 最佳答案 从RESTAssured2.6.0开始,您