J'ai lu ce docs "en marbre", mais je ne comprends pas.Comment tester unitairement rxjs5?
Ce que je veux tester est fondamentalement un "protocole". J'ai une "chose" qui est connectée à un observable et qui émet des données. Dans mon code back-end avec Rx.NET et C# J'ai écrit une aide pour tester des protocoles afin que mes tests ressemblent à ceci:
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);
en C# est très facile de se connecter observables à toutes choses et son très facile à attendez. IMO c'est un code de test très lisible.
Avec Rxjs5, je n'ai trouvé aucune possibilité d'attendre ou de faire quelque chose de similaire. Alors atm je ne en train de vérifier qu'une seule chose émise par mon observable est celui attendu:
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 appelle en fait next()
sur un BehaviourSubject.
Je suis désemparée, des idées?