модульное тестирование многих простых * ngIf - PullRequest
0 голосов
/ 02 мая 2018

У меня просто компонент

@Component({
    selector: 'app-certificate-panel',
    templateUrl: './certificate.component.html'
})
export class CertificateComponent {
    @Input()
    public certificate: Certificate;
}

с шаблоном

<h3 translate>General</h3>
<x-form-row label="{{'Version' | translate}}">
    {{ certificate.version }}
</x-form-row>
<x-form-row label="{{'Serial Number' | translate}}">
    {{ certificate.serialNumber }}
</x-form-row>
<h3 translate>Issued From</h3>
<x-form-row label="{{'Common Name (CN)' | translate}}" *ngIf="certificate.issuedFrom.commonName">
    {{ certificate.issuedFrom.commonName }}
</x-form-row>
<x-form-row label="{{'Organization Unit (OU)' | translate}}" *ngIf="certificate.issuedFrom.organizationUnit">
    {{ certificate.issuedFrom.organizationUnit }}
</x-form-row>

Показано больше свойств. В этом шаблоне несколько *ngIf.

Теперь я хочу написать модульные тесты. Должен ли я проверить каждый *ngIf? Разве это не тестирование функциональности фреймворка?

1 Ответ

0 голосов
/ 02 мая 2018

Существует ряд возможных тестов, которые вы можете выполнить с этим компонентом:

  1. setup compoenent, затем запрашивает элементы DOM, чтобы убедиться, что они присутствуют, лично я не делаю это, если ngIf s, но если это критично, то вы должны сделать вызов, это ваше приложение.
  2. , поскольку ngIf проверяет достоверность утверждения, проверяет оператор утверждения, т. Е. Компонент установки, проверяет достоверность всех этих утверждений. Опять же, в зависимости от контекста, так как это получение данных от родителя, вы должны подумать о том, насколько вы уверены, что это будет заполнено, программировать в обороне. Если есть шанс, что он может сломаться, просто сделайте дешевый тест, как этот.
  3. иногда бесполезно проверять ngIf, как я уже говорил в 2, это может быть пустой тратой времени, поскольку это будет либо правдиво, либо нет, если вы можете контролировать это, тогда этот компонент очень прост.
  4. Также вы можете сделать родительский тестовый компонент в спецификации для проведения интеграционного теста, это очень сложно, но если это дерево компонентов является критическим или сложным, это часто очень надежный тест (Лично это редко делается).

Хорошая вещь о вашем компоненте выше в том, что он прост, и поэтому тесты могут быть простыми. Я бы лично сделал вариант 2

...