2012-07-23 109 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按预期工作,并且只测试用户/编码者自己的代码。