Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何实现Azure函数TimerTrigger的单元测试_Java_Azure Functions - Fatal编程技术网

Java 如何实现Azure函数TimerTrigger的单元测试

Java 如何实现Azure函数TimerTrigger的单元测试,java,azure-functions,Java,Azure Functions,有人能帮助我们如何使用JUnit/Mockito为下面的代码编写单元测试吗 @FunctionName("nodeStats") public void nodeStats(@TimerTrigger(name = "nodeStatsTrigger", schedule = "0 */5 * * * *", dataType = "string") String timerInfo, final ExecutionContex

有人能帮助我们如何使用JUnit/Mockito为下面的代码编写单元测试吗

    @FunctionName("nodeStats")
    public void nodeStats(@TimerTrigger(name = "nodeStatsTrigger", schedule = "0 */5 * * * *", dataType = "string") String timerInfo,
                          final ExecutionContext context) {
        getNodeStats();
    }

以下文档可能会有所帮助:

创建Java函数应用程序时,会自动为HTTP触发函数创建一个示例测试用例:

    @Test
public void testHttpTriggerJava() throws Exception {
    // Setup
    @SuppressWarnings("unchecked")
    final HttpRequestMessage<Optional<String>> req = mock(HttpRequestMessage.class);

    final Map<String, String> queryParams = new HashMap<>();
    queryParams.put("name", "Azure");
    doReturn(queryParams).when(req).getQueryParameters();

    final Optional<String> queryBody = Optional.empty();
    doReturn(queryBody).when(req).getBody();

    doAnswer(new Answer<HttpResponseMessage.Builder>() {
        @Override
        public HttpResponseMessage.Builder answer(InvocationOnMock invocation) {
            HttpStatus status = (HttpStatus) invocation.getArguments()[0];
            return new HttpResponseMessageMock.HttpResponseMessageBuilderMock().status(status);
        }
    }).when(req).createResponseBuilder(any(HttpStatus.class));

    final ExecutionContext context = mock(ExecutionContext.class);
    doReturn(Logger.getGlobal()).when(context).getLogger();

    // Invoke
    final HttpResponseMessage ret = new Function().run(req, context);

    // Verify
    assertEquals(ret.getStatus(), HttpStatus.OK);
}
@测试
public void testHttpTriggerJava()引发异常{
//设置
@抑制警告(“未选中”)
最终HttpRequestMessage req=mock(HttpRequestMessage.class);
final Map queryParams=new HashMap();
queryParams.put(“名称”、“Azure”);
doReturn(queryParams).when(req).getQueryParameters();
final Optional queryBody=Optional.empty();
doReturn(queryBody).when(req).getBody();
doAnswer(新答案){
@凌驾
公共HttpResponseMessage.Builder应答(调用锁调用){
HttpStatus status=(HttpStatus)invocation.getArguments()[0];
返回新的HttpResponseMessageLock.HttpResponseMessageBuilderLock().status(状态);
}
}).when(req).createResponseBuilder(任意(HttpStatus.class));
final ExecutionContext=mock(ExecutionContext.class);
doReturn(Logger.getGlobal()).when(context.getLogger();
//援引
最终HttpResponseMessage ret=new Function().run(请求,上下文);
//核实
assertEquals(ret.getStatus(),HttpStatus.OK);
}