Skip to main content
Version: 4.0.x

使用单元测试进行调试

与任何具有输入和输出的函数一样,您可以以类似于测试其他函数的方式测试Pulsar Functions。

note

Pulsar 使用 TestNG 进行测试。

例如,如果您通过Java的语言原生接口编写了以下函数:

import java.util.function.Function;

public class JavaNativeExclamationFunction implements Function<String, String> {
@Override
public String apply(String input) {
return String.format("%s!", input);
}
}

你可以编写一个简单的单元测试来测试该函数。

@Test
public void testJavaNativeExclamationFunction() {
JavaNativeExclamationFunction exclamation = new JavaNativeExclamationFunction();
String output = exclamation.apply("foo");
Assert.assertEquals(output, "foo!");
}

以下示例是通过 Java SDK 编写的。

import org.apache.pulsar.functions.api.Context;
import org.apache.pulsar.functions.api.Function;

public class ExclamationFunction implements Function<String, String> {
@Override
public String process(String input, Context context) {
return String.format("%s!", input);
}
}

你可以编写一个单元测试来测试这个函数,并模拟Context参数如下。

@Test
public void testExclamationFunction() {
ExclamationFunction exclamation = new ExclamationFunction();
String output = exclamation.process("foo", mock(Context.class));
Assert.assertEquals(output, "foo!");
}