2016-06-20 4 views
-1

У меня есть требование для измерения времени выполнения метода каждым методом в тестовой среде JUnit 4. Рассмотрим этот тест:Как измерить время, выполненное методом, вызванным тестовым случаем Junit 4 с использованием Spring AOP или любым другим методом

package org.test.libtest 

import org.some.lib.Class 
.. 
public class testMyApp{ 
    @Test 
    public void testSomething(){ 
     //Asume following method returns a Long value after doing a complex calc 
     int a=100, b=100; 
     Long ac=org.some.lib.Class.doSomething(int a, int b); 
     Assert.assertEquals(100,ac); 
    } 
    .. 
    .. 

} 

Требование состоит в измерении времени выполняется методом org.some.lib.Class.doSomething(..).

Мы можем получить время, проведенное тестовым методом testMyApp, используя Spring AOP и собственный класс @Rule, Секундомер Junit's. Но как мы можем измерить время, выполняемое методом вызова метода методом тестирования?

+0

что-то вроде 'PerformanceMonitorInterceptor' будет делать это для вы. –

ответ

1

Вы можете измерить время выполнения вашего метода, с помощью следующего кода

long startTime = System.currentTimeMillis(); 
// here is your method you want to measure 
long estimatedTime = System.currentTimeMillis() - startTime; 

Если вы хотите более точные измерения времени, вы можете использовать System.nanoTime(); вместо System.currentTimeMillis();

+0

См., Я использую AOP, чтобы не добавлять эти инструкции для каждого из аннотированных методов @Test. Соответствующим решением будет: регистратор, который получит время выполнения, когда и когда будет выполнен метод тестирования. Точка - я не хочу изменять существующий тестовый код. –

 Смежные вопросы

  • Нет связанных вопросов^_^