1
我读过这个“大理石串”文档,但我坚持不明白。如何对rxjs5进行单元测试?
我想测试的基本上是一个“协议”。我有一个连接到Observable并发出数据的“东西”。在与Rx.NET和C#我的后端代码,我已经写了一个助手来测试协议,使我的测试是这样的:
verifier.Send(new AddMaterialPickCommand(commandId, orderId, materialId: Guid.NewGuid(), quantity: 1))
.FailWhen<CommandFailedEvent>(e => e.CommandId == commandId)
.ThenExpect<MaterialPickAddedEvent>(e => e.EntityId == orderId)
.ThenSend(new DeleteOrderCommand(commandId, orderId))
.FailWhen<CommandFailedEvent>(e => e.CommandId == commandId)
.ThenExpect<OrderDeletedEvent>(e => e.EntityId == orderId)
.ExecuteAndWait(Timeout);
在C#中它很容易观测连接到所有的事情,它也很容易等待。 IMO是一个非常易读的测试代码。
随着Rxjs5,我没有发现任何可能性等待或做任何类似的事情。所以,ATM,我未能在刚刚检查,通过我的观察到发射的一件事情是一个预期:
sut.setValue("key1", "key2");
sut.getObservable("key1", "key2")
.subscribe(value => {
expect(value).toBe("testValue") // I want either execute this or fail after a timeout
});
的setValue实际上在BehaviourSubject呼吁next()
。
我很笨,有什么想法吗?