- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在我的项目中使用 spring-boot-starter-webflux、reactor-test 和 spring-boot-starter-test 2.0.0.M7。在我的 RepositoryInMemory.class
有一个 List<String>
您可以在其中添加字符串值 saveName(Mono<String> name)
方法。您还可以通过 getAllNames()
询问添加到列表中的所有值。方法。问题是如何测试RepositoryInMemory.class
?我有 RepositoryInMemoryTest.class
但似乎它不起作用,因为 List<String>
总是返回 0。我知道问题是 doOnNext
RepositoryInMemory.class
中的方法但我不知道为什么以及如何解决它。有谁知道我应该如何创建一个有效的 Junit 测试用例?
RepositoryInMemory 类(class)
package com.example
import java.util.ArrayList;
import java.util.List;
import org.springframework.stereotype.Repository;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;
@Repository
public class RepositoryInMemory {
private final List<String> names = new ArrayList<>();
public Flux<String> getAllNames() {
return Flux.fromIterable(names);
}
public Mono<Void> saveName(Mono<String> name) {
return name.doOnNext(report -> names.add(report)).then();
}
}
package com.example
import static org.junit.Assert.assertEquals;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import reactor.core.publisher.Mono;
@RunWith(SpringRunner.class)
@SpringBootTest
public class RepositoryInMemoryTest {
@Autowired
private RepositoryInMemory repository;
@Test
public void addDataToList_ShouldReturnOne() {
Mono<String> name = Mono.just("Example Name");
repository.saveName(name);
int count = Math.toIntExact(repository.getAllNames().count().block());
assertEquals(1, count);
}
}
最佳答案
我会回答我自己的问题,因为我找到了解决方案。你唯一需要做的就是改变这一行 repository.saveName(name);
到此 repository.saveName(name).block();
.已激活 doOnNext
方法。
关于spring - 响应式(Reactive) Spring Mono 和 doOnNext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49109581/
下面我的订阅者既没有调用 onNext() 也没有调用 onCompleted()。我已经尝试通过 doOnNext()/doOnTerminate() 实现订阅者。我也试过 doAfterTermi
我是响应式(Reactive)编程的新手,也是 Spring Webflux 的新手我有一个方法可以从 Redis 获取一些键,如果这个键为 null 或不等于指定的字符串,我想抛出一个异常,但是嵌套
我有两个 Subject,一个订阅另一个来获取更新。 Subject subject = new Subject<>() { @Override public boolean hasO
我刚开始使用 rx kotlin,还没有完全理解。我正在尝试遍历查询列表,并一个一个地执行它们。在这个列表中,我有一个特殊的字符串,一旦到达,我想打破循环并执行另一个功能 我怎样才能在下面的例子中做到
在哪些情况下我应该使用 doOnNext,以及在哪些情况下doOnEach? .doOnEach(new Action1>() { @Override
我们什么时候应该使用 doOnNext()来自 Observable 而不是 onNext()? 最佳答案 doOnNext 用于副作用:您希望在流的中间步骤中对项目排放使用react(例如记录),例
我正在开发一个项目,我想在返回结果之前迭代一个列表并将它们组合起来。基本上我正在尝试将 PostResponse 对象转换为 Post。 一些相关代码。 Post.java public class
我正在寻找一种方法来确保某些函数有条件地为流运行。基本上对于每个 updateMessage,我希望始终运行 processType1,并且仅根据 updateMessage 中是否存在字段来运行 p
我有这个困惑,什么时候 doOnNext 是在 Publisher (Flux/Mono) 元素发射之前或之后触发的。 最佳答案 它在元素发布之后 - 并且它必须在定义之后,否则 Consumer传递
我的应用程序中有许多用于网络请求的 Observable。由于有太多相同之处,我对它们应用了 Observable 转换: /** * Creates a transformer that appl
假设您有 Mono someIntegerSource = Mono.just(5)并且您想将其分配给一个变量。 这些代码片段之间有区别吗? 案例1: doOnSuccess someIntegerS
我在我的项目中使用 spring-boot-starter-webflux、reactor-test 和 spring-boot-starter-test 2.0.0.M7。在我的 Repositor
我尝试从服务器获取一些数据。 Observable> backendObservable = mCountriesApi.getCountries() .subscribeOn
有没有像 doOnNext 这样的方法,但是是异步的? 例如,我需要为确定的元素做一些长时间的日志记录(通过电子邮件发送通知)。 Scheduler myParallel = Schedulers.n
我正在将应用程序从 RxJava 1 迁移到 2。我有这样的代码: RxJava 1 public Completable update() { return client.fetchNote
在 Flux 中, map 函数也为通量中的每个项目执行。对于通量中的每个项目(发射的),doOnNext 函数也被执行。从用户角度看有什么区别?为什么存在两种类似的方法?可以用简单的易用性来解释。
我对 react 堆完全陌生。我的 flatMap、doOnNext、doFinally 没有被内部 Mono 调用。我添加了描述问题的示例测试和输出。即使我将 getMeIntegerMono2 与
我是一名优秀的程序员,十分优秀!