Напишите кодовый тестовый код mocha для следующего метеорного кода. - PullRequest
1 голос
/ 07 июня 2019

Я хочу знать, как написать тестовый код, используя mocha для функции метеора

export const physicalToLogical = (physicalStatus, planningStartDate, planningEndDate) => {

  if(physicalStatus === STATUS_PHYSICAL_CREATING) {
    return STATUS_LOGICAL_CREATING;
  } else if (physicalStatus === STATUS_PHYSICAL_OPEN) {
    const now = new Date();
    if(planningStartDate.getTime() <= now && planningEndDate.getTime() > now) {
      return STATUS_LOGICAL_OPEN_FOR_PLAN;
    } else if(planningStartDate.getTime() > now) {
      return STATUS_LOGICAL_PROSPECT;
    }
    return STATUS_LOGICAL_REVIEW;
  } else if (physicalStatus === STATUS_PHYSICAL_CLOSED) {
    return STATUS_LOGICAL_CLOSED;
  } else if (physicalStatus === STATUS_PHYSICAL_ARCHIVED) {
    return STATUS_LOGICAL_ARCHIVED;
  }
  throw new Error("Not implemented yet");
};

1 Ответ

0 голосов
/ 09 июля 2019

Во-первых, эта функция не имеет никакого отношения к Метеору.

Написание тестов для такой функции потребовало бы отправки различных состояний в метод и ожидания различных результатов.

Вот пример (используя chai в качестве библиотеки утверждений):

describe('physicalToLogical', () => {
  it('should return the given status', () => {
    expect(physicalToLogical(STATUS_PHYSICAL_CREATING, null, null)).
      toEqual(STATUS_LOGICAL_CREATING);
  });

  it('should...', () => {
    ...
  });

  ...
});

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

...