单元测试响应JavaScript,Qunit和matchMedia
问题描述:
我有麻烦测试和自动化条件匹配媒体语句。我想创建一个单元测试,可以测试许多宽度(在这种情况下,桌面和平板电脑的宽度)。单元测试响应JavaScript,Qunit和matchMedia
我可以为每个设备/媒体查询(例如this.setForTablet())编写测试,但是如何测试下面的迷你控制器?
是否有一种可行的方法来测试以下语句?如果是这样,重构我的代码以避免如下所示的语句是否是一种更好的做法?
if (window.matchMedia('(max-width: 768px)').matches ) { // View <= tablet
this.setForTablet();
} else { // View > tablet
this.setForDesktop();
}
答
重构并返回。
重构迷你控制器以接受不同的输入/宽度并返回每种情况的已知/期望值。这些将是你的测试断言。
人们应该期待matchMedia按预期工作,并且只测试用户/编码者自己的代码。