Angular CLI создает .spec файлы для уже существующих компонентов

Вот общее решение с использованием семантики перемещения C ++ 11:

template 
std::vector concat(const std::vector& lhs, const std::vector& rhs)
{
    if (lhs.empty()) return rhs;
    if (rhs.empty()) return lhs;
    std::vector result {};
    result.reserve(lhs.size() + rhs.size());
    result.insert(result.cend(), lhs.cbegin(), lhs.cend());
    result.insert(result.cend(), rhs.cbegin(), rhs.cend());
    return result;
}

template 
std::vector concat(std::vector&& lhs, const std::vector& rhs)
{
    lhs.insert(lhs.cend(), rhs.cbegin(), rhs.cend());
    return std::move(lhs);
}

template 
std::vector concat(const std::vector& lhs, std::vector&& rhs)
{
    rhs.insert(rhs.cbegin(), lhs.cbegin(), lhs.cend());
    return std::move(rhs);
}

template 
std::vector concat(std::vector&& lhs, std::vector&& rhs)
{
    if (lhs.empty()) return std::move(rhs);
    lhs.insert(lhs.cend(), std::make_move_iterator(rhs.begin()), std::make_move_iterator(rhs.end()));
    return std::move(lhs);
}

Обратите внимание, что это отличается от append до vector.

30
задан smnbbrv 21 September 2017 в 21:12
поделиться

1 ответ

Леса для существующих .ts файлов могут быть созданы при помощи https://github.com/smnbbrv/ngx-spec

Для установки в Угловом проекте:

npm i -D ngx-spec@^2.0.0

(-D сокращение от - сохраняют-dev)

использование в качестве примера (для сервиса):

ng g ngx-spec:spec path/my.service

или

ng g ngx-spec:spec path/my.service.ts

Для сервиса, этот doesn’t настроил тест, который будет создан через инжекцию. Адаптируйтесь так, чтобы тест выглядел примерно так:

import { TestBed, inject } from '@angular/core/testing';

import { DataService } from './data.service';
import { AuthService } from './auth.service';
import { HttpClient, HttpHandler } from '@angular/common/http';

describe('DataService', () => {
  beforeEach(() => {
    TestBed.configureTestingModule({
      providers: [DataService, AuthService, HttpClient, HttpHandler
      ]
    });
  });

  it('should be created', inject([DataService, AuthService], (service: DataService) => {
    expect(service).toBeTruthy();
  }));
});

Это также предназначено, чтобы быть возможным генерировать тесты с помощью подстановочного знака, например,

ng g ngx-specs '**/*

, Который не работал на меня - посмотрите проблему GitHub:

https://<час> github.com/smnbbrv/ngx-spec/issues/10

Примечание - Как стратегия реализовать разработку через тестирование, я нашел самым легким искать и удалить весь существующий *.spec.ts файлы, которые были автоматически созданы в Угловом проекте как часть начального создания артефакта (путем поиска в Windows Explorer), затем как начальная точка, которую я создал единственный тест для основного сервиса поставщика Угловых координат, с помощью ngx-spec

1
ответ дан 27 November 2019 в 06:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: