Итак, мы с коллегой обсуждали создание объекта данных для наших e2e-тестов. Насколько я понимаю объекты данных, они используются для разделения ваших наборов тестов. Например, мой первый набор тестов предназначен для создания учетной записи и проверки правильности полей, а второй набор тестов входит в учетную запись и выполняет свои собственные тесты. Мне сказали, что хорошо использовать объекты данных (не объект страницы) только в том случае, если первый набор тестов не пройден при создании учетной записи. Таким образом, мы можем использовать объект данных во втором наборе тестов, чтобы создать нового пользователя только для проверки входа в систему. Моя проблема в том, что если мой первый набор тестов не может создать учетную запись, почему создание учетной записи во втором наборе тестов должно пройти успешно? Какую бы ошибку я ни получил в первом наборе тестов, я должен получить и второй набор тестов, верно? У меня есть еще много вопросов об объектах данных и о том, как их использовать. Мне было интересно, может ли кто-нибудь объяснить объекты данных и как их использовать/писать.
/***
Test Data Object
***/
var Member = function() {
var unixTime = String(Math.round(new Date()/1000));
this.username = "TestAccount" + unixTime;
this.email = this.username + "@gmail.com";
this.password = "password";
};
Member.prototype.create = function () {
var signup = new signupPage.Signup();
signup.getPage();
signup.memberAs(this.username, this.email, this.password);
};
Member.prototype.login = function () {
var login = new loginPage.Login();
login.getPage();
login.memberAs(this.username, this.password);
};
Member.prototype.logout = function () {
// k.logoutMember();
};
exports.Member = Member;
Это объект данных, который написал мой коллега. Мы не закончили писать тесты, потому что перестали об этом думать, но вот те тесты, которые у нас есть.
var chai = require('chai');
var chaiAsPromised = require("chai-as-promised");
var expect = chai.expect;
var member = require('./lib/test-data');
chai.use(chaiAsPromised);
describe.only('Member Account Settings and Information', function() {
before(function () {
member.create();
});
before.each(function() {
member.login();
});
describe('My Account', function () {
it('Logging in should enable the "My Account" link.', function() {
member.login();
});
it('Clicking on "My Account" should expand the account options', function() {
});
});