In meinem Projekt verwende ich Winkelmesser + Jasmine + TypeScript für e2e Tests. Ich habe bereits von TypeScript Ruhm der Vererbung in meiner Seite Objektdateien profitieren (zum Beispiel habe ich einige BasePageObject
Klasse mit gemeinsamen Methoden/Objekte, aus denen Rest von PageObjects abgeleitet sind). Ich möchte in meinen Tests den gleichen Ansatz vorstellen. Hier Beispielcode, die ich jetzt habe:Vererbung in e2e Tests [Jasmine, Winkelmesser, TypeScript]
Testsuite A [ATest.ts]:
import {
SomePage,
LoginPage
} from '../pages';
describe('test suite A',() => {
let loginPage: LoginPage = new LoginPage();
let somePage: SomePage = new SomePage();
beforeAll(() => {
loginPage.login();
somePage.navigateTo();
});
it('my test 1',() => {
//test body, assertions etc.
});
it('my test 2',() => {
//test body, assertions etc.
});
});
Testsuite B [BTest.ts]:
import {
AnotherPage,
LoginPage
} from '../pages';
describe('test suite B',() => {
let loginPage: LoginPage = new LoginPage();
let anotherPage: AnotherPage = new AnotherPage();
beforeAll(() => {
loginPage.login();
anotherPage.navigateTo();
});
it('my test 1',() => {
//test body, assertions etc.
});
it('my test 2',() => {
//test body, assertions etc.
});
});
Wie Sie sehen können , ein Teil des Codes ist für beide Suiten üblich. Was würde Ich mag ist Erbe in meinem TCses zu erreichen, um sie in Java Art zu schreiben und Code-Duplizierung (zum Beispiel) vermeiden:
class BaseTestCase {
beforeAll() {
loginAction();
}
}
class TestA extends BaseTestCase {
beforeAll() {
specificStuff();
}
}
class TestB extends BaseTestCase {
beforeAll() {
specificStuff();
}
}
Ist es möglich, in Jasmin?
können Sie einen Dienst erstellen, der beide bearblyAll –
Die Frage fehlt Details. Werden 'loginPage' und' anotherPage' Variablen irgendwo anders verwendet? Wenn sie einmal pro Spezifikation instanziiert werden sollten, könnten sie in ein Modul verschoben werden und Singleton-Instanzen sein, nicht wahr? – estus
Haben Sie eine gute Lösung dafür gefunden? Ich habe das selbe Problem/die gleiche Situation. –