在不重复测试的情况下验证两个不同的 Text 值

Validate two different values of Text without duplicating the test

如果一个站点有两个语言环境,GB 和 US,并且有一个我们需要断言的标签文本,其中 GB 表示“我的仪表板”,美国表示“我的仪表板”,我们如何验证这些文本值不重复测试?

  1. 至于“我的仪表板”/“我的仪表板”,最简单的方法是使用 toLowerCase() 方法(@pavelsman 评论):
await t.expect(title.innerText.toLowerCase()).eql('my dashboard');
  1. 如果情况复杂,可以使用regex matching or the .contains() method:
await t.expect(title.innerText).match(yourRegex);
await t.expect(title.innerText).contains(sameStringPartForBothCases);
  1. 如果这不适合您,那么您可能希望将您的预期值安排为 objects 以断言 完整的标题字符串 :
import { userVariables } from 'testcafe';

fixture `Fixture`;

test('test', async t => {
    const expectedTitle = {
        'en-GB': 'My dashboard',
        'en-US': 'My Dashboard'
    };

    await t.expect(title.innerText).eql(expectedTitle[userVariables.currentLocale]);
});

在这种情况下,您需要 运行 TestCafe 中的一些 .testcaferc.json 文件。

“en-GB”配置包含:

{
  "browsers": "chrome --lang=en-GB",
  "userVariables": {
    "currentLocale": "en-GB"
  }
}

“en-US”配置包含:

{
  "browsers": "chrome --lang=en-US",
  "userVariables": {
    "currentLocale": "en-US"
  }
}

参考:https://testcafe.io/documentation/402638/reference/configuration-file#uservariables