我知道这现在可能太老了,但我找到了一种复杂的解决方法。我找到了一种方法,方法是编写一个自定义的可序列化函数,该函数充当一个满意的函数。
对于您的用例PAssert
,如下所示。
PAssert.that(p1).satisfies(PCollectionSatisfies.forExpectedList(p2));
并将满意度函数实现为
public class PCollectionSatisfies {
public static <T> SerializableFunction<Iterable<T>, Void> forExpectedList(ImmutableList<T> expected) {
return (SerializableFunction<Iterable<T>, Void>)
input -> {
Truth.assertThat(input).containsExactlyElementsIn(expected).inOrder();
return null;
};
}
public static <T> SerializableFunction<T, Void> forSingleton(T expected) {
return (SerializableFunction<T, Void>)
input -> {
Truth.assertThat(input).isEqualTo(expected);
return null;
};
}
}
希望有帮助。