Я пытаюсь создать тестовый скрипт, используя node.js.Я использую assert и использую для этого среду тестирования mocha.Особенностью этого является тестирование того, что регистрация нового пользователя всегда возвращает 200. Для этого я объявил метку времени, используя следующий метод:
var currentDate = new Date();
var timestamp = currentDate.getTime();
var testInvitee = {
"username": "name.lastname+11231232" + timestamp + "@company.com"
};
Идея заключается в том, что всякий раз, когда я запускаю тест,Строка должна отличаться, так как отметка времени изменится.Однако при запуске mocha я получаю следующий ответ:
Testing registration
Register new user:
AssertionError [ERR_ASSERTION]: 403 === 400
+ expected - actual
-200
+400
at Context.it (test.js:596:28)
at <anonymous>
Я сделал несколько вызовов console.log()
в ходе выполнения сценария, которые показали, что timestamp
не определено.См. Тело ответа ниже:
Testing as System User.
undefined
Testing candidates
undefined
√ Get candidates (145ms)
//more code
Testing registration
undefined
13) Register new user
Я не уверен, почему метка времени не определена в этом случае.Я ожидаю, что это будет миллисекунды с 1 января 1970 года, как обычно.Есть что-то, что я пропустил или сделал неправильно?Возможно, есть библиотека, которую я должен использовать?Если проблема не в timestamp
, я должен предположить, что проблема более глубока в API, но я уверен, что это не так.
РЕДАКТИРОВАТЬ: Вот блок кода из describe
it
блоков на случай, если у меня возникла проблема и здесь:
describe('Testing registration', function () {
before(async () => {
await backend.authenticate();
});
it('Register new user', async () => {
const output = await backend.registerUser()
console.log("", backend.timestamp);
switch (userLevel) {
case "CLIENT_ADMIN":
assert.strictEqual(200, output.statusCode);
break;
case "ADMIN":
assert.strictEqual(200, output.statusCode);
break;
case "GROUP_ADMIN":
assert.strictEqual(200, output.statusCode);
break;
case "HR":
assert.strictEqual(200, output.statusCode);
break;
case "USER":
assert.strictEqual(200, output.statusCode);
break;
default:
console.log("No case match");
break;
}
});
})