ТС:
columnDefs = [
{ headerName: 'columnone', field: 'one', width: 120, sortable: true,
cellRenderer: (data) => {
return this.limitCommonUtil.numberFormatter(data?.data?.upperAmount);
}
},
{ headerName: 'columntwo', field: 'two', width: 120, sortable: true,
cellRenderer: (data) => {
return this.limitCommonUtil.dateFormatterDDMMMYYYY(data?.data?.startDate);
}]
HTML:
<ag-grid-angular
[rowData] = "(dataStream)"
[columnDefs] = "columnDefs"
class = "side-panels-container-grid"
[gridOptions] = "gridOptionsDefault"
(selectionChanged) = "onSelectionChanged()">
</ag-grid-angular>
как написать модульный тест для columndefs в jasmine и karma? я не могу охватить функцию возврата cellRendered. Получение ошибки, как показано ниже.
Ошибка: Не удается прочитать свойства undefined (чтение «данных»)
Правильно ли вы издевались над данными для сетки в своем тесте? Если вас интересует только модульное тестирование самого cellRenderer, вы можете:
const cellRenderer = component.columnDefs.find(c => c.headerName === 'columnone').cellRenderer as any;
expect(cellRenderer({data: { upperAmount: 10 }})).toEqual('Whatever is expected');
О, возвращает ли this.limitCommonUtil.numberFormatter наблюдаемое значение? Я ожидал, что он вернет строку.
у вас есть какие-нибудь идеи о том, как написать ожидаемый случай для этого? @йохан нордлиндер
Можете ли вы показать свой текущий код, как ожидаемую, так и функцию numberFormatter?
но средство форматирования чисел возвращает только число. numberFormatter (значение) { if (isNaN (значение)) { return 0; } else { return Intl.NumberFormat().format(Math.round(value)); } } @йохан нордлиндер
если вы можете, не могли бы вы проверить по ссылке ниже? stackoverflow.com/questions/71428583/… @йохан нордлиндер
Я попробовал ваш способ, но получил ошибку типа «Ожидаемое наблюдаемое ({ _isScalar: false, _subscribe: Function}) равное 10». @йохан нордлиндер