Заставить TestCafe показывать объект diff - PullRequest
1 голос
/ 13 января 2020

Мы используем TestCafe для сквозного тестирования, и я обнаруживаю, что смотрю на ошибку, подобную этой:

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

Я хотел бы, чтобы подобные сообщения об ошибках включали diff , Я знаю, что модули различий объектов доступны на npm, но я бы хотел добавить их таким образом, чтобы мне не пришлось импортировать эту библиотеку каждый раз, когда я утверждаю равенство объектов.

Ответы [ 2 ]

1 голос
/ 15 января 2020

В настоящее время TestCafe не может показать разницу между объектами, он показывает только сообщение Assertion Error.

1 голос
/ 14 января 2020

Я написал очень похожую функцию машинописи, которая включает в себя предварительный поиск по всем свойствам объекта. Я немного изменил его для вашей цели. Может быть, это сработает. Я не проверял это.

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]);
        }
      }
    }
}
...