pisze testy w angularowej aplikacji, korzystam do tego z jasmine, karma.
Pisząc test dla metody przekształcającej dane z Array<Data> do Array<DataView> napotkałem coś dziwnego:
export class FakeDataService extends DataService {
month = 0;
year = 2016;
}
describe('DataService', () => {
beforeEach(() => {
TestBed.configureTestingModule({
providers: [DataService]
});
});
it('should return proper DataView with createViews()', () => {
const testData: Array<Data> = [
{ year: 2016, month: 1, duties: new Array<Duty>() },
];
const goodResult: Array<DataView> = [
{ date: 'styczeń 2016', dutyTime: '-' }
];
const dataService = new FakeDataService();
expect(dataService.createViewsFromData(testData)).toEqual(goodResult);
});
});
Test daje taki rezultat:
Expected $[0] to be a kind of Object, but was DataView({ date: 'styczeń 2016', dutyTime: '-' }).
a jak zmienie toEqual na toBe dostaje cos takiego
Expected [ DateView({ date: 'styczeń 2016', dutyTime: '-'' }) ] to be [ Object({ date: 'styczeń 2016', dutyTime: '-'}) ]
Dlaczego goodResult zostaje jakby przeparsowane do object....