2017-03-04 20 views
0

私はaws lambda RequestHandlerをJavaで書いて、別のaws lambdaを呼び出します。他のラムダを呼び出すには、@ LambdaFunctionでアノテーションされたメソッドを持つインターフェイスを作成しました。私は私が手ラムダ展開せずにJUnitテストを実行するとどのようにユニットawwラムダ呼び出しをテストする?

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

::私が使用して呼び出しを構築するには

java.lang.IllegalArgumentException: No region provided 

は、それは、ユニットテストとどのように実行者をモックすることは可能ですか?

答えて

0

あなたのテストクラス内でこの行に何かを試すことができます -

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

とテスト方法かもしれない - - あなたのインタフェースassumingly 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" 
    }); 
} 
関連する問題