2017-03-04 2 views
0

나는 다른 aws 람다를 호출하는 Java로 작성된 aws lambda RequestHandler를 가지고있다. 다른 lambda를 호출하기 위해 @LambdaFunction에 의해 주석이 달린 메소드로 인터페이스를 작성했습니다. 호출자를 구축하기 위해 내가 사용단위 테스트 aws 람다 invokation 방법?

java.lang.IllegalArgumentException: No region provided 

는 단위 테스트에서 어떻게 호출자를 모의 할 수 있는가 :

LamdaInvoker lamdaInvoker = LambdaInvokerFactory.builder().lambdaClient(AWSLambdaClientBuilder.defaultClient()).build(LamdaInvoker.class); 

내가 얻을 람다를 배치하지 않고 JUnit 테스트를 실행하면?

답변

0

당신은 당신의 테스트 클래스 내에서 이것의 라인에 뭔가를 시도 할 수 있습니다 -

static interface YourInterface { 
    @LambdaFunction 
    void someMethod(String arg1); 
} 

및 테스트 방법이 될 수있다 - - 사용자 인터페이스를 가정하여 IS는

private LambdaInvocationHandler handler; 
private AWSLambda lambda; 
private LambdaInvokerFactory factory; 
private YourInterface invoker; 

@Before 
public void setup() { 
    lambda = Mockito.mock(AWSLambda.class); 
    factory = new LambdaInvokerFactory(lambda, null); 
    invoker = factory.build(YourInterface.class); 
    handler = (LambdaInvocationHandler) Proxy.getInvocationHandler(invoker); 
} 

@Test 
public void testSomeMethod() throws Exception { 
    Method x = getMethod("someMethod", String.class); 
    handler.validateInterfaceMethod(someMethod, new Object[] { 
      "str" 
    }); 
}