Как утверждение будет применено к одному Testcase с несколькими DataSet, когда я передаю четыре DataSet через Jasmine-Data-Provider - PullRequest
0 голосов
/ 22 января 2020

У меня есть один Testcase of Login, в котором я передаю 4 типа тестовых данных через Jasmine-Data-Provider. Я хочу применить утверждение в одном T C. Как я могу это сделать?

Мой файл spe c - это login.ts

describe("Test", () => {
using(hardshipTestData.scenarios, (alldata: any, alldesc: any) => {
    it("TC", () => {
        browser.get("url link");
        browser.element(by.id("UserID")).sendKeys(alldata.username);
        browser.element(by.id("Password")).sendKeys(alldata.password);
        browser.element(by.className("k-button")).click();
    })
})
})

Мой файл данных - data.ts

export const hardshipTestData =
{
  scenarios:
  {
    Wrongusername: { username: 'abc', password: 'ab' },
    Wrongpassword: { username: 'xyz', password: 'ab' },
    blankCreds: { username: '', password: '' },
    CorrectCreds: { username: 'username12', password: 'password12' }

  }, }

Теперь я хочу примените утверждение таким образом, чтобы я мог проверить свой тестовый набор со всеми четырьмя наборами данных.

Пример

  1. , если correctCreds передан в T C, тогда тест должен пройти.
  2. если я передаю имя_пользователя , то в этом случае пользователь не сможет войти в систему, и тест будет пройден.

Как я могу это сделать ??

Ответы [ 2 ]

4 голосов
/ 22 января 2020

Я бы включил ожидаемый результат как часть данных, а затем использовал бы его для выполнения вашего утверждения.

Файл данных

export const hardshipTestData =
{
  scenarios:
  {
    Wrongusername: { username: 'abc', password: 'ab', loggedIn: false },
    Wrongpassword: { username: 'xyz', password: 'ab', loggedIn: false},
    blankCreds: { username: '', password: '', loggedIn: false },
    CorrectCreds: { username: 'username12', password: 'password12', loggedIn: true }

  }, }

Затем создайте функцию который возвращает true, если пользователь успешно вошел в систему и выполнил утверждение, как это.

it("TC", () => {
    browser.get("url link");
    browser.element(by.id("UserID")).sendKeys(alldata.username);
    browser.element(by.id("Password")).sendKeys(alldata.password);
    browser.element(by.className("k-button")).click();
    expect(isLoggedIn()).toBe(alldata.loggedIn);
})
0 голосов
/ 23 января 2020

Это разрешается следующим образом:

export const hardshipTestData =
{
  scenarios:
  {
    Wrongusername: { whichCreds : 'Wrongusername', username: 'abc', password: 'ab' , message: 'Invalid'},
    Wrongpassword: { whichCreds : 'Wrongpassword',username: 'xyz', password: 'ab', message: 'Invalid' },
    blankCreds: { whichCreds : 'blankCreds', username: '', password: '' ,message: 'required'},
    CorrectCreds: { whichCreds : 'CorrectCreds', username: 'username12', password: 'password12', message: 'Home' }

  }, }

Здесь я также записал свой ожидаемый результат в переменную "message" и передал "WhichCreds", чтобы выполнить дополнительное условие

My TestCase.ts

let login = new LoginElement();

describe("Test", () => {
using(hardshipTestData.scenarios, (alldata: any, alldesc: any) => {
    it("TC", () => {
        browser.get("url link");
        browser.element(by.id("UserID")).sendKeys(alldata.username);
        browser.element(by.id("Password")).sendKeys(alldata.password);
        browser.element(by.className("k-button")).click();

 expect(login.LoginStatus(alldata.whichCreds)).toContain((alldata.message).trim());
    })
})
})

Мой файл LoginElement.ts

public LoginStatus(whichCreds : any)
    {
        switch(whichCreds) { 
            case "Wrongusername": { 
                return (browser.element(by.id("LoginFailure"))).getText();
               break; 
            } 
            case "Wrongpassword": { 
                return (browser.element(by.id("PasswordFailure"))).getText();
               break; 
            } 
            case "blankCreds": { 
                return (browser.element(by.class("Blank_field"))).getText();
                break; 
             } 
             case "CorrectCreds": { 
               return browser.getCurrentUrl();
                break; 
             } 
            default: { 
               break; 
            } } }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...