Мой тестируемый метод следующий:
/**
* Update properties when the applicant changes the payment term value.
* @return {Mixed} - Either an Array where the first index is a boolean indicating
* that selectedPaymentTerm was set, and the second index indicates whether
* displayProductValues was called. Or a plain boolean indicating that there was an
* error.
*/
onPaymentTermChange() {
this.paymentTerm.valueChanges.subscribe(
(value) => {
this.selectedPaymentTerm = value;
let returnValue = [];
returnValue.push(true);
if (this.paymentFrequencyAndRebate) {
returnValue.push(true);
this.displayProductValues();
} else {
returnValue.push(false);
}
return returnValue;
},
(error) => {
console.warn(error);
return false;
}
)
}
Как вы видите, paymentTerm - это элемент управления формой, который возвращает Observable, который затем подписывается, и проверяется возвращаемое значение.
Я не могу найти никакой документации по модульному тестированию FormControl. Самое близкое, что я пришел, - это статья о Mocking Http-запросах, которая похожа на концепцию, возвращающую Observables, но я не думаю, что она применима полностью.
Для справки я использую Angular RC5, запуская тесты с кармой, а рамки - Jasmine.