国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

【Jasmine】行為驅動測試框架 -- 擴展教程

Rocko / 2385人閱讀

摘要:只測試指定測試套件同一層級中出現兩個測試將忽略同理,同一層級出現和,將會忽略案例忽略該測試忽略該測試忽略該測試自定義比較函數覆蓋比較函數在聲明周期使用,返回或,如果返回或則表示使用默認的進行比較自定義匹配規則在聲明周期使用加入自定義匹配規則

focus spec

只測試指定測試套件, 同一層級中出現 it, fit 兩個測試 spec, 將忽略 it, 同理,同一層級出現 describefdescribe,將會忽略desribe

案例
describe("Focused specs", function() {
  
  
  fit("is focused and will run", function() {
    expect(true).toBeTruthy();
  });

  // 忽略該測試 spec
  it("is not focused and will not run", function(){
    expect(true).toBeFalsy();
  });
  
  fdescribe("focused describe", function(){
    it("will run", function(){
      expect(true).toBeTruthy();
    });

    it("will also run", function(){
      expect(true).toBeTruthy();
    });
  });
  
  fdescribe("another focused describe", function(){
    // 忽略該測試
    fit("is focused and will run", function() {
      expect(true).toBeTruthy();
    });

    it("is not focused and will not run", function(){
      expect(true).toBeFalsy();
    });
   });
  
  // 忽略該測試
  describe("ignore describe", function () {
    fit("is focused and will run", function() {
      expect(true).toBeTruthy();
    });
  })
});
custom equality

自定義比較函數, 覆蓋 toEqual 比較函數. 在beforeEach聲明周期使用 jasmine.addCustomEqualityTester, 返回truefalse, 如果返回 undefinednull. 則表示使用默認的toEqual進行比較

describe("test suite", function () {
    beforeEach(function() {
      jasmine.addCustomEqualityTester(function (actual, expected) {
        var actualType = typeof actual
        if (actualType === "string" && actualType === typeof expected) {
          return actual[0] === expected[0]
        }
      });
    });
    
    it("should be custom equal", function () {
     expect("aa").toEqual("ab");
    });
});
custom matchers

自定義匹配規則, 在beforeEach聲明周期使用 jasmine.addMatchers 加入自定義匹配規則. 比 custom equality
更完善, 可以自定義錯誤信息.

beforeEach(function () {
  jasmine.addMatchers({

    // TO BE LIKE
    toBeLike: function (util, customEqualityTesters) {

      return {
        // 匹配規則
        // 參數 actual 實際傳入值
        // 參數 expected 期待值
        compare: function (actual, expected) {
          var pass = false;
          var message = "";
          var actualType = typeof actual;
          var expectedType = typeof expected;
          if (actual === expected) {
            pass = true;
          } else if (actual === null) {
            pass = expected === null || expected === undefined;
          } else if (actualType === expectedType) {
            pass = true;
            if (actualType === "object") {
              for (name in actual) {
                if (actual[name] === null || actual[name] === undefined) {
                  pass = expected === null || expected === undefined;
                } else if (typeof actual[name] !== typeof expected[name]) {
                  pass = false;
                }
                if (!pass) {
                  break;
                }
              }
            }
          }
          if (pass) {
            message = "Expected " + actual + " to be like"
          } else {
            message = "Expected " + actual + " not to be like"
          }
          return {
            pass: pass,
            message: message
          };
        } // end compare
      }; 
    } // end toBeLike function
  });
});

使用方式

describe("to be like suite", () => {
  
  function noop () {}
  function noop2 () {}

  it("assert to be like", function () {

    expect("f").toBeLike("a");
    expect(null).toBeLike(undefined);

    expect({
      msg: "first msg",
      cb: noop
    }).toBeLike({
      msg: "second msg",
      cb: noop2
    });
  });

  it("assert no to be like", function () {
    expect(1).not.toBeLike("1");
    expect(noop).not.toBeLike();
  });
});
相關文章推薦

Jasmine基礎教程

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/85175.html

相關文章

  • Jasmine行為驅動測試框架 -- 擴展教程

    摘要:只測試指定測試套件同一層級中出現兩個測試將忽略同理,同一層級出現和,將會忽略案例忽略該測試忽略該測試忽略該測試自定義比較函數覆蓋比較函數在聲明周期使用,返回或,如果返回或則表示使用默認的進行比較自定義匹配規則在聲明周期使用加入自定義匹配規則 focus spec 只測試指定測試套件, 同一層級中出現 it, fit 兩個測試 spec, 將忽略 it, 同理,同一層級出現 descri...

    張率功 評論0 收藏0
  • Jasmine行為驅動測試框架 基礎教程

    摘要:介紹是基于測試框架行為驅動測試的定義它是通過用自然語言書寫非程序員可讀的測試用例擴展了測試驅動開發方法行為驅動開發人員使用混合了領域中統一的語言的母語語言來描述他們的代碼的目的函數包含兩個參數一個測試套件的名稱實現測試套件的代碼塊函數定義 介紹 Jasmine 是基于 BBD (behavior-driven development)測試框架 行為驅動測試的定義:它是通過用自然語言書寫...

    JowayYoung 評論0 收藏0
  • 譯:你該使用什么單元測試,Qunit、Jasmine還是Mocha?

    摘要:不論你是在寫瀏覽器端還是后端的,總存在那么一個問題我該使用什么單元測試庫去確保我的代碼如預期的運行呢總是有那么一些流行的框架可供選擇。在中仍然流行,并且擁有來自許多地方性的支持。如果你的測試使用它,直到調用了才能通過。 不論你是在寫瀏覽器端javascript還是后端的nodejs,總存在那么一個問題:我該使用什么單元測試庫去確保我的代碼如預期的運行呢?總是有那么一些流行的框架可供選擇...

    Forelax 評論0 收藏0
  • 前端進階之路: 前端架構設計(3) - 測試核心

    摘要:而測試驅動開發技術并不只是單純的測試工作。需求向來就是軟件開發過程中感覺最不好明確描述易變的東西。這里說的需求不只是指用戶的需求,還包括對代碼 可能很多人和我一樣, 首次聽到前端架構這個詞, 第一反應是: 前端還有架構這一說呢? 在后端開發領域, 系統規劃和可擴展性非常關鍵, 因此架構師備受重視, 早在開發工作啟動之前, 他們就被邀請加入到項目中, 而且他們會跟客戶討論即將建成的平臺的...

    Karuru 評論0 收藏0
  • 前端進階之路: 前端架構設計(3) - 測試核心

    摘要:而測試驅動開發技術并不只是單純的測試工作。需求向來就是軟件開發過程中感覺最不好明確描述易變的東西。這里說的需求不只是指用戶的需求,還包括對代碼 可能很多人和我一樣, 首次聽到前端架構這個詞, 第一反應是: 前端還有架構這一說呢? 在后端開發領域, 系統規劃和可擴展性非常關鍵, 因此架構師備受重視, 早在開發工作啟動之前, 他們就被邀請加入到項目中, 而且他們會跟客戶討論即將建成的平臺的...

    宋華 評論0 收藏0

發表評論

0條評論

Rocko

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<