ค้นหาเว็บไซต์

javascript - ฉันจะสร้างกรณีทดสอบตามเงื่อนไขโดยใช้ Protractor ได้อย่างไร?


ปัจจุบัน ฉันมีชุดทดสอบบางชุดที่ฉันต้องการรันเฉพาะในบางเงื่อนไขเท่านั้น

it ('user is able to log in', function() {
   if(siteAllowsLogin) {
       .....
   }

การใช้ไวยากรณ์ข้างต้นทำให้ sitesNotAllowingLogin ผ่านการทดสอบนี้ ฉันรู้ว่ามีวิธีแก้ไขเพื่อทำเครื่องหมายการทดสอบว่าอยู่ในสถานะ PENDING แต่ฉันต้องการให้การทดสอบไม่แสดง หากมันไม่สามารถใช้ได้

ฉันก็อยากเก็บตรรกะไว้ภายในกรณีทดสอบด้วย ถ้าเป็นไปได้ ดังนั้นเก็บบล็อก if ไว้ภายในกรณีทดสอบ

มีคำแนะนำเกี่ยวกับวิธีข้ามการทดสอบนี้ถ้าเงื่อนไขไม่เป็นไปตามที่กำหนด เพื่อที่จะไม่แสดงผลลัพธ์เป็น PENDING หรือ PASSED ไหม

ความช่วยเหลือจะได้รับการชื่นชมอย่างมาก

คำตอบ #1

คุณสามารถใช้ฟังก์ชัน ignore ข้างหน้าเพื่อระงับการทดสอบหากนิพจน์เงื่อนไข/สถานะที่ให้มาถูกต้อง:

var ignore = function(exp){return{it:((typeof exp==='function')?exp():exp)?function(){}:it}};

describe('Suite 1', function() {

    it("test a", function() {
        expect(1).toEqual(1);
    });

    ignore(true).it("test b", function() {
        expect(1).toEqual(1);
    });

    ignore(skip).it("test c", function() {
        expect(1).toEqual(1);
    });

    function skip(){
      return true;
    }
});

บทความที่เกี่ยวข้อง