2012-07-23 155 views
0

我有麻煩測試和自動化條件匹配媒體語句。我想創建一個單元測試,可以測試許多寬度(在這種情況下,桌面和平板電腦的寬度)。單元測試響應JavaScript,Qunit和matchMedia

我可以爲每個設備/媒體查詢(例如this.setForTablet())編寫測試,但是如何測試下面的迷你控制器?

是否有一種可行的方法來測試以下語句?如果是這樣,重構我的代碼以避免如下所示的語句是否是一種更好的做法?

 if (window.matchMedia('(max-width: 768px)').matches ) { // View <= tablet 
      this.setForTablet(); 
     } else { // View > tablet 
      this.setForDesktop(); 
     } 

回答

0

重構並返回。

重構迷你控制器以接受不同的輸入/寬度並返回每種情況的已知/期望值。這些將是你的測試斷言。

人們應該期待matchMedia按預期工作,並且只測試用戶/編碼者自己的代碼。