Я занимаюсь тестированием в Angular, меня особенно интересует понимание границ тестирования компонентов Angular.
Угловые компоненты - это комбинация кода в классе компонентов и представления в шаблоне. Также есть стилизация с помощью CSS. Я не уверен, как далеко зайти при проверке вещей. Я использую подход TDD, и мне интересно, обычно ли проверяют, что h1
содержит определенный заголовок или что label
для поля ввода имеет определенный текст. Проверяем ли мы, что оно выделено жирным шрифтом, а не курсивом и имеет серый фон ??
Элементы, связанные с дизайном (определенные стили CSS, расположение и упорядочение элементов, регистр, шрифты и т. Д.)может со временем сильно измениться, и я лично редко уверен в «спецификации» этих предварительных версий до того, как получу визуальную обратную связь , увидев UI , методом проб и ошибок.
Кроме того, некоторые тесты кажутся излишними, как проверка того, что компонент создан, а не null
. Возьмем, к примеру, следующий код:
it('should set instance correctly', () => {
expect(contactsComponent).notBeNull(); });
и это:
it('should have contacts if there is data', () => {
const newContact: Contact = {
id: 1,
name: 'Jason Pipemaker'
};
const contactsList: Array<Contact> = [newContact];
contactsComponent.contacts = contactsList;
expect(contactsComponent.contacts.length).toBe(1);
});
и это
it('should display name in uppercase', () => {
const expectedPipedName = expectedHero.name.toUpperCase();
expect(el.textContent).toContain(expectedPipedName);
});
и
it('should render title in a h1 tag', async(() => {
const fixture = TestBed.createComponent(AppComponent);
fixture.detectChanges(); 8
const compiled = fixture.debugElement.nativeElement; 9
expect(compiled.querySelector('h1').textContent)
.toContain('Welcome to app!'); 10
}));
Может ли кто-нибудь со стажем пролить свет на эти аспекты TDD с помощью Angular? Спасибо