У меня есть тесты Жасмин, которые проводятся с кармой. Эти тесты охватывают объект со статическими свойствами, которые используются для управления поведением. Изменение этих статических свойств имеет отрицательные последствия для тестов, которые не ожидают, что они будут отклоняться от значений по умолчанию Конкретнее, этот тест:
it('honors the base64CharactersPerLine option', () => {
const testData = new Uint8Array([ 0x01, 0x02, 0x03, 0x04 ]);
const pem = new PEMObject();
pem.header = "CERTIFICATE";
pem.data = testData;
PEMObject.base64CharactersPerLine = 1; // Causes race condition
const encodedData = pem.encode();
console.info(encodedData);
console.info(encodedData.match(/^\w/g));
expect(encodedData.match(/^\w$/g).length).toBeGreaterThan(testData.length);
});
отрицательно влияет на этот тест:
it('decoding then encoding returns the original data', () => {
const pem = new PEMObject();
pem.header = "CERTIFICATE";
pem.decode(testPEM);
expect(pem.encode()).toEqual(testPEM);
});
, сделав вывод pem.encode()
в последнем тесте не идентичным исходному вводу testPEM
(a string
).
Более общий вопрос, который я хотел бы знать: как вы предотвращаете условия гонки в тестах кармы / жасмина, где статические члены используются для изменения поведения?