gpt4 book ai didi

java - onErrorReturn rx java 中的断言不会失败

转载 作者:行者123 更新时间:2023-12-02 02:28:16 26 4
gpt4 key购买 nike

我有以下代码:

public Single<Post> doSomething(Post post) {
String endPoint = "some-url";
JsonObject payload = new JsonObject().put("message", post.getPost());
return oAuth.rxApi(HttpMethod.POST, endPoint, payload)
.map(r -> {
post.setPostId(r.getString("id"));
post.setStatus(PostStatus.PROCESSED);
return post;
}).onErrorReturn(e -> {
post.setStatus(PostStatus.FAILED);
post.setError(e.getMessage());
return post;
});
}

我已经为其编写了以下测试用例。

@Test
public void shouldHandleFailureWhilePosting() {
Post post = new Post();
post.setSocialAccountID("1234");
post.setAccessToken("ABC");
post.setPost("Some post to share!!!");

String shareEndPoint = "some-url";
JsonObject sharePayload = new JsonObject().put("message", post.getPost());
when(oAuth2Auth.rxApi(HttpMethod.POST, shareEndPoint, sharePayload)).thenReturn(Single.error(new NoStackTraceThrowable("Error")));

service.doSomething(post)
.subscribe(postResponse -> {
assert postResponse.getError().equals("Errorssss");
assert postResponse.getAttachedMedia() == null;
assert postResponse.getPostId() == null;
assert postResponse.getStatus().equals(PostStatus.FAILED);
});
}

现在我在这种情况下的断言总是成立。即使我做出错误的断言,它也始终是绿色的。

最佳答案

断言是在可观察链的上下文中执行的,并且无法从测试中直接访问。

而是使用 TestSubscriber 来订阅可观察链。它有很多断言。

关于java - onErrorReturn rx java 中的断言不会失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47514388/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com