Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使TestCafe显示对象差异_Javascript_Assert_E2e Testing_Testcafe_End To End - Fatal编程技术网

Javascript 使TestCafe显示对象差异

Javascript 使TestCafe显示对象差异,javascript,assert,e2e-testing,testcafe,end-to-end,Javascript,Assert,E2e Testing,Testcafe,End To End,我们使用TestCafe进行端到端测试,我发现自己遇到了如下错误: AssertionError: expected [ Array(5) ] to deeply equal [ Array(5) ] 我希望这样的错误消息包括一个diff。我知道npm上有对象diff模块,但我想添加它,这样我就不必在任何时候声明对象相等时导入此库。我编写了一个非常类似的typescript函数,它涉及到对对象的所有属性进行面包优先搜索。为了你的目的我稍微修改了一下。也许会有用。我没有测试它 isPrimiti

我们使用TestCafe进行端到端测试,我发现自己遇到了如下错误:

AssertionError: expected [ Array(5) ] to deeply equal [ Array(5) ]

我希望这样的错误消息包括一个diff。我知道npm上有对象diff模块,但我想添加它,这样我就不必在任何时候声明对象相等时导入此库。

我编写了一个非常类似的typescript函数,它涉及到对对象的所有属性进行面包优先搜索。为了你的目的我稍微修改了一下。也许会有用。我没有测试它

isPrimitiveType(o) {
  const t = typeof o;
  return t == 'string' || t == 'number' || t == 'boolean';
}

printDiff(obj: any, userPref: any) {
    if (obj === undefined || obj === null) {
      return;
    }
    for (let k in obj) {
      let prop = obj[k];
      if (isPrimitiveType(prop)) {
        if (!userPref[k]) {
          console.log(userPref[k], ' not matches');
        } 
      } else {
        if (!userPref[k]) {
          console.log(userPref[k], ' not matches');
        } else {
          this.setUserPrefs(obj[k], userPref[k]);
        }
      }
    }
}

最新的TestCafe版本(
1.11.0
)显示了对象差异。

功能不错!但是我该如何设置TestCafe?对不起,我对TestCafe不太了解