当前位置: 首页 > 面试题库 >

确定我的junit的业务相关代码的执行时间的最佳实践是什么?

宗政德宇
2023-03-14
问题内容

在eclipse-> junit-view中显示的测试执行时间取决于整个测试用例的执行,包括:

  • 测试数据准备
  • 执行业务逻辑
  • 断言结果

我需要有关我的业务逻辑和仅我的业务逻辑的执行时间的更详细的说明。那就是我在测试用例中所做的:

Date lNow = new Date();
List<Geo> lAllBasisGeo = mGeoEvaluator.evaluateAllGeo(lGeoFixture.getGeo(), lAllGeo);
Date lStop = new Date();
System.out.println("Time of execution in seconds:"+((lStop.getTime()-lNow.getTime())/1000));

好吧…我认为我以一种非常尴尬的方式确定时间。此外,我认为不必声明两个Date变量。

我需要一些建议来更有效地编写该代码…


问题答案:

在单元测试中,我希望为带有JUnit 4批注的Test添加一个超时,以确定测试是否通过(足够快):

@Test(timeout=100)//let the test fail after 100 MilliSeconds
public void infinity() {
  while(true);
}

为了确定您的业务逻辑的确切运行时间,我将像在关键代码路径之前和之后一样添加Time语句,并重复几次以获取学术上正确的结果,然后再次删除该语句,以简化代码。

long start = System.currentTimeMillis();
//execute logic in between
long end = System.currentTimeMillis();
System.out.println("DEBUG: Logic A took " + (end - start) + " MilliSeconds");


 类似资料:
  • 我有一个处理实时事件的系统。用户可以在指定的时间间隔插入自定义事件。实时引擎使用java.time.Duration来计时事件。通过jsp向用户展示一个菜单,该菜单以(全)秒为单位指定Duration。事件列表被序列化为Long值。所以我有三种使用相同值的方法。我创建了一个值对象,在每次访问时执行转换,这样我就不必将转换分散在整个代码中。我想知道是否有更好的方法来完成这个场景。这是我的VO。

  • 最近我开始用静态编程语言Vert. x编程,这个问题对于我们使用Vertx工具包的任何技术都是通用的。我创建了我的顶点,但在这些顶点中我有业务逻辑,我想知道什么是最佳实践: 1.将逻辑分离到一个独立的类中,在顶点中实例化它并执行其操作,只留下顶点来接收消息并将其传递到事件总线。 尽可能2.Implement同一垂直领域的逻辑。 下面我展示了一个代码示例,但正如你所看到的,是顶点本身的逻辑。从设计的

  • 本文向大家介绍设计微服务的最佳实践是什么?相关面试题,主要包含被问及设计微服务的最佳实践是什么?时的应答技巧和注意事项,需要的朋友参考一下 以下是设计微服务的最佳实践: 为每个微服务分开数据存储 将代码保持在类似的成熟度等级上 为每个微服务进行单独的构建 部署到容器中 将服务器视为无状态的

  • 问题内容: 我刚开始学习Go,并通读现有代码以学习“其他人的做法”。在这种情况下,遍历使用go“工作区”,尤其是与项目依赖关系有关的地方。 在处理各种Go项目时,使用一个或多个Go工作区(即$ GOPATH的定义)的常见(或存在)最佳实践是什么?我应该期望有一个类似于我所有项目的中央代码存储库的Go工作区,还是在我处理这些项目时都明确将其分解并设置$ GOPATH(有点像python) virtu

  • 我有一个关于用wsimport工具生成Java工件的问题(by Maven Jax-WS) 当我从WSDL生成Java工件时,我希望将web服务项目打包为WAR文件,将其客户机打包为JAR文件。 在哪里放置生成的工件,在哪里放置WSDL?关于组织Web服务项目的最佳实践是什么? 提前谢谢你! 向你问好,尤里卡·克里扎尼克

  • 问题内容: 我正在构建一个基于expressjs的应用程序,我想在其中记录所有事件。我可以找到温斯顿,这似乎很酷。无论如何,我正在寻找一种方法将其连接到我的expressjs应用程序。 我还想要在应用程序内部登录。我的要求不是那么简单,所以我想将所有内容记录在我的应用程序中(不仅是请求)。 我目前的情况: server.js (我想在此级别记录http请求) 路线/something.js con