Чтобы выполнить модульное тестирование вместо тестирования интеграции, я высмеивал объект ответа обработчика запроса.
/* app.js */
import endpointHandler from './endpointHandler';
// ...
app.post('/endpoint', endpointHandler);
// ...
/* endpointHandler.js */
const endpointHandler = (req, res) => {
try {
const { username, location } = req.body;
if (!(username && location)) {
throw ({ status: 400, message: 'Missing parameters' });
}
res.status(200).json({
location,
user,
message: 'Thanks for sharing your location with me.',
});
} catch (error) {
console.error(error);
res.status(error.status).send(error.message);
}
};
export default endpointHandler;
/* response.mock.js */
import { EventEmitter } from 'events';
class Response extends EventEmitter {
private resStatus;
json(response, status) {
this.send(response, status);
}
send(response, status) {
this.emit('response', {
response,
status: this.resStatus || status,
});
}
status(status) {
this.resStatus = status;
return this;
}
}
export default Response;
/* endpointHandler.test.js */
import Response from './response.mock';
import endpointHandler from './endpointHander';
describe('endpoint handler test suite', () => {
it('should fail on empty body', (done) => {
const res = new Response();
res.on('response', (response) => {
expect(response.status).toBe(400);
done();
});
endpointHandler({ body: {} }, res);
});
});
Затем, чтобы достичь интеграционного тестирования, вы можете высмеять свой endpointHandler и вызвать конечную точку с помощью Supertest .
Это может произойти, если gwt-gantt использует в своем компоненте то же имя стиля CSS, что и компонент GWT.
Например, GWT CellTable использует «.cellTableEvenRow» для одного из своих имен стилей CSS. Если gwt-gantt использует то же имя стиля CSS, то это может повлиять на стиль CSS по умолчанию.
Итак, проверьте, использует ли gwt-gantt какое-либо имя стиля CSS, которое использует GWT.
GWT-Гантт Кажется, не поддерживается, с самым последним изменением, датируемым 3 года назад.
Я настоятельно рекомендую вам выбрать любую JS библиотеку Ганта и [116 ] взаимодействовать с ним с помощью JSInterop. Таким образом, у вас будет более широкий выбор библиотек и никаких стилевых проблем.
Я знаю, что это на самом деле не отвечает на ваш вопрос, но я верю, что в долгосрочной перспективе вам будет лучше с этим подходом.