Нужна помощь для написания тестовых случаев для динамического контента в Angular 6 и
используя пакеты кармы.
spec.ts:
Я написал тестовый пример для проверки просмотров статьи. До
выполняя функцию, она проходит, но после получения данных она
не проходя Как написать контрольные примеры для динамического контента.
describe('SingleArticleVideoComponent', () => {
let originalTimeout;
let debugTest: DebugElement[];
let el: HTMLElement;
let component: SingleArticleVideoComponent;
let fixture: ComponentFixture<SingleArticleVideoComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ SingleArticleVideoComponent,
PollsComponent,
AdBannerComponent],
imports: [
RouterTestingModule,
NavModule,
FooterModule,
VgCoreModule,
VgControlsModule,
VgOverlayPlayModule,
VgBufferingModule,
FormsModule,
ReactiveFormsModule,
MatFormFieldModule,
MatRadioModule,
MatDialogModule,
HttpModule,
HttpClientModule,
BrowserAnimationsModule,
BrowserModule
],
providers: [
ArticleService,
AdService,
UserServiceService
]
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(SingleArticleVideoComponent);
component = fixture.componentInstance;
fixture.detectChanges();
originalTimeout = jasmine.DEFAULT_TIMEOUT_INTERVAL;
jasmine.DEFAULT_TIMEOUT_INTERVAL = 100000;
});
afterEach(function() {
jasmine.DEFAULT_TIMEOUT_INTERVAL = originalTimeout;
fixture = TestBed.createComponent(SingleArticleVideoComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('views should be more than 100', async(() => {
expect(component.anchor).toEqual('before');
expect(component.anchor).toEqual('after');
}));
it('should create', () => {
expect(component).toBeTruthy();
});
});
component.ts:
Это дает правильный результат, когда я использую нг подачи , но это не так
работает для тестирования, используя ng test .
ngOnInit() {
this.get_single_video('emcure-csi-tv-dr-pk-dep-ACE-inhibitor-or-ARNI-what-should-be-used-in-heart-failure-with-reduced-ejection-fraction', this.category);
}
get_single_video(slug, category) {
console.log('get one video calling');
this.anchor ='before';
this.service.get_single_video(slug, category).subscribe(
data => {
if(data['success'])
{
this.anchor='after';
this.load_data = true;
if(data['data']['guest3'].length > 0 || data['data']['guest4'].length > 0){
this.gus = true;
}
}
});
component.html:
Представления дают ноль, когда я его утешаю. Представления отображаются нормально
если я запускаю его, используя ng serve , но не для ng test .
<li class="views"><code>{{single_article['anchor']}}</code><br>Views</li>
user-service.service.ts:
Я могу видеть data.json () в функции карты, но не могу получить
внутри функции подписки в файле component.ts, как я уже говорил
выше.
import 'rxjs/Rx';
get_single_video(slug, catagory) {
console.log('in article service single video');
const final_url = this.api_url + '/' + slug + '?key=' + this.api_key;
console.log(final_url);
return this._http.get(final_url)
.map(data => {
data.json();
// the console.log(...) line prevents your code from working
// either remove it or add the line below (return ...)
console.log(' I CAN SEE DATA HERE: ', data.json());
return data.json();
}).catch(error => observableThrowError(error.json()));
}