Как проверить приватную функцию с помощью мокко? - PullRequest
0 голосов
/ 30 апреля 2018

Поскольку я новичок в модульном тестировании, я хочу протестировать свой код javascript, который очень сбивает с толку .. Мне очень нужна помощь, которая могла бы найти решение для моей проблемы. ??

if (!Notification) {
 Notification = {};
  else {
    if (typeof Notification != "object") {
      throw new Error(" already exists ");
    }
  }
 Notification.admin = function() {
    var res = {};
    var prevent = "";

    var DefaultValue = function(ans, type, commnon, status) {
      var notify = type.concat(common);
      if ($("#method").val() == "false" && type == "Text") {
        if (status) {
          return data = '<label class="checkbox-label"><input data-role="ux-checkbox" type="checkbox" disabled="disabled" data-type="' + notify + '" class="grid-checkbox">&nbsp;&nbsp</label>';
        } else {
          return data = '<label class="checkbox-label">' + '<span class="no-checkbox-label" >' + "-" + '</span>' + '</label>';
        }
      } else if (status) {
        if (ans) {
          return data = '<label class="checkbox-label"><input data-role="ux-checkbox" checked=checked type="checkbox" data-type="' + notify + '" class="grid-checkbox ">&nbsp;&nbsp</label>';
        } else {
          return data = '<label class="checkbox-label"><input data-role="ux-checkbox" type="checkbox" data-type="' + notify + '" class="grid-checkbox">&nbsp;&nbsp</label>';
        }
      } else {
        return data = '<label class="checkbox-label">' + '<span class="no-checkbox-label" >' + "-" + '</span>' + '</label>';
      }
    };
    this.init = function() {


    };}; Notification.Obj = new Notification.admin();

  $(document).ready(function() {

Notification.Obj.init();

  });

Это моя личная функция, которую я хочу протестировать, так как использую мокко и чай ..

Я не могу выполнить модульное тестирование этой функции

1 Ответ

0 голосов
/ 30 апреля 2018

Вы не пишете тесты для частных методов.

Открытые методы - это открытый интерфейс класса. Те, которые вызываются извне. Частные методы - это детали реализации, которые вас не волнуют.

Задачей модульного теста является проверка всех открытых методов класса. (И нет, обнародование частных методов внутри класса не является решением для этого.)

Измените фактическую бизнес-часть вашего частного метода на новый сервис. Эта служба будет иметь функциональность, предоставляемую общедоступным методом. Вы можете проверить эту услугу. В текущем сервисе вы можете добавить этот сервис и использовать его функциональность.

При этом: вы можете использовать только метод модульного тестирования, который не имеет побочных эффектов и зависимость которого вы можете смоделировать (внедрение зависимости).

...