Можем ли мы использовать TestBed для сервисов с NativeScript? - PullRequest
0 голосов
/ 18 марта 2020

Я пишу приложение с NativeScript 6+ и Angular 8+. Я пытаюсь написать несколько юнит-тестов и запустить их. Я прочитал документацию по модульному тестированию: https://docs.nativescript.org/tooling/testing/testing У меня есть несколько модульных тестов, работающих с простыми сервисами. например,

import { ItemService } from '../app/item/item.service';

describe('ItemsService Test', () => {

    let service: ItemService;

    beforeEach(() => { service = new ItemService(); });

    it('should be defined',() => {
        expect(service).toBeTruthy();
    });

    it('should have its functions defined',() => {
        expect(service.getItems).toBeTruthy();
        expect(service.getItem).toBeTruthy();
    });

});

Я вижу, что мы можем тестировать Сервисы с зависимостями, создавая их экземпляры в конструкторах, а также с фиктивными сервисами. https://angular.io/guide/testing#service -tests

Можно ли использовать TestBed для наших служб в NativeScript? Если да, можете ли вы предоставить пример того, как это сделать?

Ответы [ 2 ]

1 голос
/ 19 марта 2020

Передайте службы в качестве второго аргумента nsTestBedBeforeEach, затем получите экземпляр, используя TestBed

import { TestBed } from "@angular/core/testing";
import { nsTestBedBeforeEach } from "nativescript-angular/testing";

import { ItemService } from "../app/item/item.service";

describe("ItemsService Test", () => {
    let service: ItemService;

    beforeEach(nsTestBedBeforeEach([], [ItemService]));

    it("should use ItemService", () => {
        service = TestBed.get(ItemService);
        expect(service.getItems).toBeTruthy();
        expect(service.getItem).toBeTruthy();
    });
});
0 голосов
/ 19 марта 2020
var mainViewModel = require("../main-view-model"); //Require the main view model to expose the functionality inside it.

describe("Hello World Sample Test:", function() {
  it("Check counter.", function() {
    expect(mainViewModel.createViewModel().counter).toEqual(42); //Check if the counter equals 42.
  });
  it("Check message.", function () {
    expect(mainViewModel.createViewModel().message).toBe("42 taps left"); //Check if the message is "42 taps left".
  });
});
...