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()
。
我很笨,有什麼想法嗎?