Модульное тестирование наблюдаемой (субъект <T>) - PullRequest
2 голосов
/ 02 января 2012

Я получил Repository с публичной Subject<Item> с именем Мутации , на которую можно подписаться. Проще заметить наблюдаемый как поток Item, источником которого будет первичное соединение с сокетом.

Я подписываюсь на поток, используя что-то вроде Repository.Mutations.Subscribe(item => DoWhatever(item));.

Я получил поддельный источник данных, в который я хочу отправить Предметы, чтобы проверить, выполняет ли этот поток / наблюдаемый объект в хранилище свою работу.

Я много читал об использовании TestScheduler() в Rx, но я совершенно потерян, когда пытаюсь создать модульный тест, и как этот планировщик вступит в игру, используя мой собственный код.

По общему признанию, я новичок в Rx, но я надеюсь, что кто-то сможет дать мне подсказку или два.

1 Ответ

1 голос
/ 10 января 2012

Если вы хотите узнать, произведен ли элемент с помощью свойства Mutations, вы можете сделать то же, что и вы, но просто проверить в своем тестовом коде, что был вызван фактический метод подписки, т.е.что-то вроде:

Item expectedItem = new Item();
Item actualItem = null;
Repository.Mutations.Subscribe(item => actualItem = item);
dataSource.PushItem(expectedItem);

Assert.AreSame(expectedItem, actualItem);
...