как ожидать начала строки с указанной переменной - PullRequest
0 голосов
/ 18 апреля 2020

У меня есть простая функция, создающая строку из сложного объекта. Для простоты я буду go для этого

public generateMessage(property: string): string {
    return `${property} more text.`;
}

Мой тест в настоящее время

    it('starts the message with the property name', () => {
        const property = 'field';
        const message: string = myClass.generateMessage(property);

        expect(message).toEqual(`${property} more text.`);
    });

Единственное, что здесь важно, это то, что сгенерированное сообщение начинается со свойства. Есть ли способ проверить, начинается ли строка с этого свойства? Псевдокод:

expect(message).toStartWith(property);

или я должен сделать это самостоятельно, используя метод startsWith() для строк? Лучшее решение, которое приходит мне в голову на данный момент:

expect(message.startsWith(property)).toBeTruthy();

1 Ответ

1 голос
/ 20 апреля 2020

Вы можете использовать .toMatch (regexpOrString) и регулярное выражение для этого. Шаблон регулярного выражения, эквивалентный начинается с , равен /^field?/

Например,

index.ts:

class MyClass {
  public generateMessage(property: string): string {
    return `${property} more text.`;
  }
}

export { MyClass };

index.test.ts:

import { MyClass } from './';

describe('61290819', () => {
  it('should pass', () => {
    const myClass = new MyClass();
    const property = 'field';
    const message: string = myClass.generateMessage(property);
    expect(message).toMatch(new RegExp(`^${property}?`));
  });

  it('should pass too', () => {
    const myClass = new MyClass();
    const property = 'f_ield'; // make some changes
    const message: string = myClass.generateMessage(property);
    expect(message).not.toMatch(new RegExp('^field?'));
  });
});

Результаты модульных испытаний:

 PASS  stackoverflow/61290819/index.test.ts (9.814s)
  61290819
    ✓ should pass (5ms)
    ✓ should not pass

Test Suites: 1 passed, 1 total
Tests:       2 passed, 2 total
Snapshots:   0 total
Time:        11.417s
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...