pengujian sudut melati - apakah mungkin menambahkan atribut pada metode deskripsikan?

Saya baru dalam pengujian melati dan berasal dari latar belakang xUnit .Net.

Apakah mungkin untuk memberi label suatu tes atau serangkaian tes dengan cara seperti itu:

[SomeAttribute]

 describe("A suite", function() {
   it("contains spec with an expectation", function() {
           expect(true).toBe(true);   
             });
 });

Apakah Jasmine mendukung atribut atau pengenal apa pun? Tujuan saya sebenarnya adalah menjalankan kelompok pengujian yang dijelaskan dua kali, dengan pengaturan berbeda di antara pengujian yang dijalankan. Saya tidak ingin menduplikasi tes tersebut. Mungkinkah suatu tes memulai tes lainnya?

Pertanyaan ini mengasumsikan bahwa saya puas dengan menduplikasi langkah build untuk menjalankan test suit dua kali, hanya dengan subset tes untuk proses kedua.

Sunting: Contoh yang lebih realistis tentang bagaimana saya berharap untuk mengonsumsinya

[Theory]
[TestData(true)]
[TestData(false)]
 describe("A suite", function() {

    beforeEach(() => {
     configureTestBed(/*someHow get input*/);
    });

   it("contains spec with an expectation", function() {
           expect(true).toBe(true);   
             });
 });

person asdf    schedule 09.07.2018    source sumber
comment
Dari mana asal settingnya? Dari file eksternal? dari karma.conf? dll?   -  person Bk Santiago    schedule 09.07.2018
comment
Menambahkan hasil edit pada OP untuk menunjukkan bagaimana saya berharap untuk menggunakannya, sekali lagi mengambil inspirasi dari teori pengujian yang diparameterisasi: andrewlock.net/ Jika saya dapat menentukan karma.conf berbeda yang berpotensi berfungsi juga jika saya dapat dari konfigurasi test bed membaca pengaturan itu (dan kemudian memutuskan untuk memiliki langkah-langkah pembuatan duplikat untuk menjalankan rangkaian pengujian dua kali dan kemudian membuat daftar putih penjelasan tertentu)   -  person asdf    schedule 09.07.2018


Jawaban (1)


Yang dapat Anda lakukan adalah mendefinisikan fungsi terpisah yang akan menerima parameter dari tempat lain dalam kode Anda.

Sesuatu seperti ini akan berhasil:

describe('Sample describe', () => {
    testFunction(1);
});

function testFunction(param1) {
    it('should execute test with params', () => {
        console.log(param1);
        expect(param1).toBe(1);
    });
}
person Yuriy Kravets    schedule 09.07.2018