LTS
LTS гэта абрэвіятура для Служба маланкавага тэсціравання

Структура тэсціравання, прадастаўленая Salesforce што дазваляе распрацоўшчыкам пісаць і выконваць тэсты JavaScript для кампанентаў Lightning, вэб-кампанентаў Lightning і іншых налад на аснове JavaScript на платформе Salesforce. LTS ліквідуе разрыў паміж сучаснымі метадамі тэсціравання вэб-распрацоўкі і унікальнай архітэктурай Salesforce, забяспечваючы стандартызаваны спосаб тэсціравання кліенцкага кода Lightning.
Асноўныя функцыянальныя магчымасці
LTS аб'ядноўвае папулярныя платформы тэсціравання JavaScript, такія як Jest і Jasmine, з платформай Salesforce. Ён забяспечвае праграму выканання тэстаў, якая выконвае гэтыя тэсты непасрэдна ў кантэксце платформы Lightning, гарантуючы, што тэсты дакладна адлюстроўваюць, як код будзе паводзіць сябе ў рэальным асяроддзі Salesforce. Сэрвіс выконвае складаную задачу загрузкі фреймворка Lightning Component і кіравання асяроддзем тэсціравання, што дазваляе распрацоўшчыкам засяродзіцца на напісанні значных тэстаў.
Прыклад рэалізацыі
// Example of an LTS test using Jest
import { createElement } from 'lwc';
import MyComponent from 'c/myComponent';
describe('c-my-component', () => {
let element;
beforeEach(() => {
// Create a fresh instance of the component before each test
element = createElement('c-my-component', {
is: MyComponent
});
document.body.appendChild(element);
});
afterEach(() => {
// Clean up after each test
document.body.removeChild(element);
});
it('displays the correct initial value', () => {
// Query the component's internal elements
const textElement = element.shadowRoot.querySelector('.display-text');
expect(textElement.textContent).toBe('Initial Value');
});
it('updates value when button is clicked', async () => {
// Simulate user interaction
const button = element.shadowRoot.querySelector('button');
button.click();
// Wait for any asynchronous operations
await Promise.resolve();
// Verify the new state
const textElement = element.shadowRoot.querySelector('.display-text');
expect(textElement.textContent).toBe('Updated Value');
});
}); асноўныя характарыстыкі
Налада тэставага асяроддзя
LTS аўтаматычна канфігуруе асяроддзе тэсціравання, уключаючы наладжванне эмуляцыі DOM, кіраванне падзеямі жыццёвага цыкла кампанентаў і апрацоўку ініцыялізацыі фреймворка Lightning. Гэта забяспечвае правядзенне тэстаў у асяроддзі, якое дакладна адпавядае рэальнай платформе Salesforce.
Сумяшчальнасць з рамкамі
Сэрвіс падтрымлівае некалькі фрэймворкаў тэсціравання, што дазваляе распрацоўшчыкам выкарыстоўваць знаёмыя інструменты і шаблоны тэсціравання. Яна ўключае ў сябе ўбудаваную падтрымку для:
- Jest (рэкамендуецца для Lightning Web Components)
- Jasmine (падтрымліваецца для кампанентаў Aura)
- кава мокко
Здзеклівая падтрымка
LTS уключае ўтыліты для высмейвання функцый Salesforce, такіх як:
- Выклікі метаду Apex
- Аперацыі Lightning Data Service
- Навігацыйныя дзеянні
- Мерапрыемствы платформы
Best Practices
Арганізацыя выпрабаванняў
Тэсты павінны быць арганізаваны так, каб адлюстроўваць структуру кампанентаў, якія яны тэстуюць. Кожны тэставы файл павінен быць сканцэнтраваны на адным кампаненце або модулі з тэставымі прыкладамі, згрупаванымі па функцыях або паводзінах, якія правяраюцца.
Ізаляцыя
Кожны тэст павінен праводзіцца ізалявана, са скідам асяроддзя тэсціравання паміж тэстамі, каб прадухіліць заражэнне крыжаваным тэстам. Хукі beforeEach і afterEach, якія прадстаўляюцца платформай тэсціравання, павінны выкарыстоўвацца для наладжвання і адмены ўмоў тэставання.
Асінхроннае тэставанне
Пры тэставанні аперацый, якія ўключаюць выклікі сервера або UI абнаўленняў, тэсты павінны належным чынам апрацоўваць асінхронныя аперацыі з выкарыстаннем async/await або абяцанняў для забеспячэння дакладных вынікаў.
Недахопы
Будучы магутным, LTS мае некаторыя абмежаванні, пра якія распрацоўшчыкі павінны ведаць:
- API браўзера: некаторыя API браўзера могуць не цалкам падтрымлівацца ў тэставым асяроддзі.
- Інтэграцыя з платформай: пэўныя функцыі, характэрныя для платформы, могуць запатрабаваць дадатковага здзеку або іх нельга праверыць непасрэдна праз LTS.
- Праверка прадукцыйнасці: LTS не прызначаны для праверкі прадукцыйнасці або нагрузачнага тэставання кампанентаў.
Інтэграцыя з працоўным працэсам распрацоўкі
LTS інтэгруецца з сучаснымі інструментамі і практыкамі распрацоўкі:
- Інтэрфейс каманднага радка: Тэсты можна запускаць з дапамогай Salesforce CLI Каманды
- Бесперапынная інтэграцыя: Тэсты могуць быць аўтаматызаваны як частка канвеераў CI/CD
- IDE Інтэграцыя: прамое выкананне тэстаў з асяроддзя распрацоўкі, напрыклад VS Code
Сумяшчальнасць версій
LTS рэгулярна абнаўляецца для падтрымкі новых выпускаў і функцый Salesforce. Распрацоўшчыкі павінны пракансультавацца з нататкамі да выпуску Salesforce, каб даведацца пра канкрэтную інфармацыю аб сумяшчальнасці версій і новыя функцыі ў кожным выпуску.