русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Порядок выполнения работы


Дата добавления: 2015-06-12; просмотров: 538; Нарушение авторских прав


В данном порядке выполнения лабораторной работы будет произведено написание тестов для функций слоя доступа к данным DAO, разработанным и реализованным в четвертой лабораторной работе.

Для тестирования будет использоваться Unit Testing Framework, который включен в Visual Studio 2008.

1. Создайте консольное приложение Windows (нажмите «Файл», в меню выберите «Создать», затем «Проект», в диалоговом окне выберите «Windows», «Консольное приложение», введите имя проекта, например lab6, и выберите каталог, в котором будет храниться проект).

2. Создайте в проекте каталоги dao, domain, mapping. Перенесите в эти каталоги любым доступным способом классы слоя доступа к данным, реализованные в четвертой лабораторной работе. Это можно сделать, например, с использованием файлового менеджера Total Commander.

Откройте каталог dao с четвертой лабораторной работы и скопируйте все классы в каталог dao проекта консольного приложения. Результаты копирования представлены на рисунке 6.1.

Рисунок 5.1 – Результаты копирования классов с каталога dao предыдущего проекта в каталог dao WEB-приложения

Классы каталогов domain и mapping таким же образом необходимо скопировать в соответствующие каталоги консольного приложения.

После копирования классов в проекте они не появятся, их следует добавить в проект (нажмите правой кнопкой мыши на каталог dao и в контекстном меню выберете пункт «Добавить», «Существующий элемент», в открывшемся диалоге выберете все классы каталога dao консольного приложения и нажмите «Добавить»). Те же действия произведите с классами каталогов domain и mapping. В проекте должны появиться все классы слоя доступа к данным.

3. Подключите к проекту все необходимые библиотеки. Список библиотек приведен ниже:

Npgsql.dll
Mono.Security.dll
NHibernate.dll
Antlr3.Runtime.dll
Iesi.Collections.dll
log4net.dll
Castle.DynamicProxy2.dll
Castle.Core.dll
NHibernate.ByteCode.Castle.dll
FluentNHibernate.dll

Измените namespace каждого класса с lab4 на lab6 как показано в примере:



namespace lab4.dao { abstract public class DAOFactory { public abstract IStudentDAO getStudentDAO();   public abstract IGroupDAO getGroupDAO(); } } namespace lab6.dao { abstract public class DAOFactory { public abstract IStudentDAO getStudentDAO();   public abstract IGroupDAO getGroupDAO(); } }

 

Исправьте ошибки проекта и откомпилируйте проект с консольным приложением, он должен откомпилироваться без ошибок. Данный проект можно было и не создавать, а использовать проекты из предыдущих лабораторных работ, в которых присутсвует слой доступа к данным DAO.

4. Создайте тестирующий проект (нажмите «Файл», «Создать проект», в диалоговом окне выберите «Тест», «Тестовый проект», введите имя проекта, если имя тестируемого проекта lab6, то принято называть тестовый проект lab6Test, в поле «Решение» выберите «Добавить решение»). В тестовом проекте будут располагаться модульные тесты классов для слоя доступа к данным. Таким образом, у нас в одном решении содержится два проекта: тестируемый проект, классы которого необходимо проверить на работоспособность, и тестирующий проект, в котором будут содержаться модульные тесты.

5. На данный момент в проекте содержится один класс - UnitTest1, в котором содержится один тестовый метод TestMethod1. Если запустить процесс тестирования (нажать «Тест», «Выполнить», «Все тесты решения»), то один единственный тест проекта будет успешно пройден, поскольку в нем не содержится проверок. Удалите класс тестирования, созданный по умолчанию.

6. Подключите к тестирующему проекту проект lab6 и все библиотеки проекта lab6.

7. В тестирующем проекте необходимо создать набор классов, методы которых протестировали бы работоспособность методов классов слоя доступа к данным. Необходимо протестировать класс GroupDAO и класс StudentDAO, но поскольку эти классы являются наследниками шаблонного класса GenericDAO, то логично будет также вынести тестирование методов GenericDAO в шаблонный класс. Создайте в тестовом проекте три класса: TestGenericDAO, TestGroupDAO, TestStudentDAO. В классе TestGenericDAO будет производиться тестирование методов класса GenericDAO, в классе TestGroupDAO будет производиться тестирование методов класса GroupDAO, а в классе TestStudentDAO будет производиться тестирование методов класса StudentDAO. Тестовый класс обычно состоит из набора методов-тестов помеченных атрибутом [TestMethod]. Также может содержаться метод инициализации теста, который вызывается перед запуском метода-теста и помечен атрибутом [TestInitialize], и метод очистки теста, который вызывается каждый раз по завершению метода-теста и помечен атрибутом [TestCleanup]. Также могут присутствовать методы инициализации и очистки уровня класса, которые вызываются перед запуском первого теста и после последнего теста соответственно.

8. Текст тестового класса TestGenericDAO приведен ниже:

 

using System;

using Microsoft.VisualStudio.TestTools.UnitTesting;

using NHibernate;

using NHibernate.Criterion;

using System.Collections.Generic;

using FluentNHibernate;

using FluentNHibernate.Cfg;

using FluentNHibernate.Cfg.Db;

using FluentNHibernate.Automapping;

using NHibernate.Tool.hbm2ddl;

using System.Reflection;

using FluentNHibernate.Mapping;

using NHibernate.Cfg;

using lab6.mapping;

using lab6.dao;

using lab6.domain;

 

namespace lab6

{

[TestClass()]

public abstract class TestGenericDAO<T> where T:EntityBase

{

 

protected static ISessionFactory factory;

protected static ISession session;

protected DAOFactory daoFactory;

protected TestContext testContextInstance;

/** DAO that will be tested */

protected IGenericDAO<T> dao = null;

 

/** First entity that will be used in tests */

protected T entity1 = null;

/** Second entity that will be used in tests */

protected T entity2 = null;

/** Third entity that will be used in tests */

protected T entity3 = null;

 

public TestGenericDAO()

{

session = openSession("localhost", 5432, "university",

"postgres", "111111");

}

 

public TestContext TestContext

{

get

{

return testContextInstance;

}

set

{

testContextInstance = value;

}

}

 

/*Getting dao this test case works with*/

public IGenericDAO<T> getDAO()

{

return dao;

}

 

/*Setting dao this test case will work with*/

public void setDAO(IGenericDAO<T> dao)

{

this.dao = dao;

}

 

[ClassCleanup]

public static void ClassCleanup()

{

session.Close();

}

 

[TestInitialize]

public void TestInitialize()

{

Assert.IsNotNull(dao,

"Please, provide IGenericDAO implementation in constructor");

createEntities();

Assert.IsNotNull(entity1, "Please, create object for entity1");

Assert.IsNotNull(entity2, "Please, create object for entity2");

Assert.IsNotNull(entity3, "Please, create object for entity3");

checkAllPropertiesDiffer(entity1, entity2);

checkAllPropertiesDiffer(entity1, entity3);

checkAllPropertiesDiffer(entity2, entity3);

saveEntitiesGeneric();

}

 

[TestCleanup]

public void TestCleanup()

{

try {

if ((entity1 = dao.GetById(entity1.Id)) != null)

dao.Delete(entity1);

} catch (Exception){

Assert.Fail("Problem in cleanup method");

}

try {

if ((entity2 = dao.GetById(entity2.Id)) != null)

dao.Delete(entity2);

} catch (Exception) {

Assert.Fail("Problem in cleanup method");

}

try {

if ((entity3 = dao.GetById(entity3.Id)) != null)

dao.Delete(entity3);

} catch (Exception) {

Assert.Fail("Problem in cleanup method");

}

entity1 = null;

entity2 = null;

entity3 = null;

}

 

[TestMethod]

public void TestGetByIdGeneric()

{

T foundObject = null;

// Should not find with inexistent id

try

{

long id = DateTime.Now.ToFileTime();

foundObject = dao.GetById(id);

Assert.IsNull(foundObject, "Should return null if id is inexistent");

}

catch (Exception)

{

Assert.Fail("Should return null if object not found");

}

// Getting all three entities

getEntityGeneric(entity1.Id, entity1);

getEntityGeneric(entity2.Id, entity2);

getEntityGeneric(entity3.Id, entity3);

}

 

[TestMethod]

public void TestGetAllGeneric()

{

List<T> list = getListOfAllEntities();

Assert.IsTrue(list.Contains(entity1),

"After dao method GetAll list should contain entity1");

Assert.IsTrue(list.Contains(entity2),

"After dao method GetAll list should contain entity2");

Assert.IsTrue(list.Contains(entity3),

"After dao method GetAll list should contain entity3");

}

 

[TestMethod]

public void TestDeleteGeneric()

{

try

{

dao.Delete((T)null);

Assert.Fail("Should not delete entity will null id");

}

catch (Exception)

{

}

// Deleting second entity

try

{

dao.Delete(entity2);

}

catch (Exception)

{

Assert.Fail("Deletion should be successful of entity2");

}

 

// Checking if other two entities can be still found

getEntityGeneric(entity1.Id, entity1);

getEntityGeneric(entity3.Id, entity3);

 

// Checking if entity2 can not be found

try

{

T foundEntity = null;

foundEntity = dao.GetById(entity2.Id);

Assert.IsNull(foundEntity,

"After deletion entity should not be found with id " + entity2.Id);

}

catch (Exception)

{

Assert.Fail("Should return null if finding the deleted entity");

}

 

// Checking if other two entities can still be found in getAll list

List<T> list = getListOfAllEntities();

Assert.IsTrue(list.Contains(entity1),

"After dao method GetAll list should contain entity1");

Assert.IsTrue(list.Contains(entity3),

"After dao method GetAll list should contain entity3");

}

 

protected abstract void createEntities();

 

protected abstract void checkAllPropertiesDiffer(T entityToCheck1,

T entityToCheck2);

 

protected abstract void checkAllPropertiesEqual(T entityToCheck1,

T entityToCheck2);

 

protected void saveEntitiesGeneric()

{

T savedObject = null;

try

{

dao.SaveOrUpdate(entity1);

savedObject = getPersistentObject(entity1);

Assert.IsNotNull(savedObject,

"DAO method saveOrUpdate should return entity if successfull");

checkAllPropertiesEqual(savedObject, entity1);

entity1 = savedObject;

}

catch (Exception)

{

Assert.Fail("Fail to save entity1");

}

try

{

dao.SaveOrUpdate(entity2);

savedObject = getPersistentObject(entity2);

Assert.IsNotNull(savedObject,

"DAO method saveOrUpdate should return entity if successfull");

checkAllPropertiesEqual(savedObject, entity2);

entity2 = savedObject;

}

catch (Exception)

{

Assert.Fail("Fail to save entity2");

}

 

try

{

dao.SaveOrUpdate(entity3);

savedObject = getPersistentObject(entity3);

Assert.IsNotNull(savedObject,

"DAO method saveOrUpdate should return entity if successfull");

checkAllPropertiesEqual(savedObject, entity3);

}

catch (Exception)

{

Assert.Fail("Fail to save entity3");

}

}

 

protected T getPersistentObject(T nonPersistentObject)

{

ICriteria criteria = session.CreateCriteria(typeof(T))

.Add(Example.Create(nonPersistentObject));

IList<T> list = criteria.List<T>();

Assert.IsTrue(list.Count >= 1,

"Count of grups must be equal or more than 1");

return list[0];

}

 

protected void getEntityGeneric(long id, T entity)

{

T foundEntity = null;

try

{

foundEntity = dao.GetById(id);

Assert.IsNotNull(foundEntity,

"Service method getEntity should return entity if successfull");

checkAllPropertiesEqual(foundEntity, entity);

 

}

catch (Exception)

{

Assert.Fail("Failed to get entity with id " + id);

}

}

 

protected List<T> getListOfAllEntities()

{

List<T> list = null;

 

// Should get not null and not empty list

try

{

list = dao.GetAll();

}

catch (Exception)

{

Assert.Fail(

"Should be able to get all entities that were added before");

}

Assert.IsNotNull(list,

"DAO method GetAll should return list of entities if successfull");

Assert.IsFalse(list.Count == 0,

"DAO method should return not empty list if successfull");

return list;

}

 

//Метод открытия сессии

public static ISession openSession(String host, int port,

String database, String user, String passwd)

{

ISession session = null;

if (factory == null)

{

FluentConfiguration configuration = Fluently.Configure()

.Database(PostgreSQLConfiguration

.PostgreSQL82.ConnectionString(c => c

.Host(host)

.Port(port)

.Database(database)

.Username(user)

.Password(passwd)))

.Mappings(m => m.FluentMappings.Add<StudentMap>().Add<GroupMap>())

.ExposeConfiguration(BuildSchema);

factory = configuration.BuildSessionFactory();

}

//Открытие сессии

session = factory.OpenSession();

return session;

}

 

//Метод для автоматического создания таблиц в базе данных

private static void BuildSchema(Configuration config)

{

new SchemaExport(config).Create(false, true);

}

}

}

 

9. Текст тестового класса TestGroupDAO приведен ниже:

 

using System;

using System.Collections.Generic;

using Microsoft.VisualStudio.TestTools.UnitTesting;

using lab6.domain;

using lab6.dao;

 

namespace lab6

{

[TestClass]

public class TestGroupDAO:TestGenericDAO<Group>

{

 

protected IGroupDAO groupDAO = null;

protected Student student1 = null;

protected Student student2 = null;

protected Student student3 = null;

 

public TestGroupDAO():base()

{

DAOFactory daoFactory = new NHibernateDAOFactory(session);

groupDAO = daoFactory.getGroupDAO();

setDAO(groupDAO);

}

 

protected override void createEntities()

{

entity1 = new Group();

entity1.GroupName = "KS-091";

entity1.CuratorName = "Pronin P. P.";

entity1.HeadmanName = "Volosniy R. R.";

 

entity2 = new Group();

entity2.GroupName = "KS-092";

entity2.CuratorName = "Eroshenko G. L.";

entity2.HeadmanName = "Kruglenko T. R.";

 

entity3 = new Group();

entity3.GroupName = "KS-093";

entity3.CuratorName = "Grab E. E.";

entity3.HeadmanName = "Stecenko Q R.";

}

 

protected override void checkAllPropertiesDiffer(Group entityToCheck1,

Group entityToCheck2)

{

Assert.AreNotEqual(entityToCheck1.GroupName, entityToCheck2.GroupName,

"Values must be different");

Assert.AreNotEqual(entityToCheck1.CuratorName,

entityToCheck2.CuratorName, "Values must be different");

Assert.AreNotEqual(entityToCheck1.HeadmanName,

entityToCheck2.HeadmanName, "Values must be different");

}

 

protected override void checkAllPropertiesEqual(Group entityToCheck1,

Group entityToCheck2)

{

Assert.AreEqual(entityToCheck1.GroupName, entityToCheck2.GroupName,

"Values must be equal");

Assert.AreEqual(entityToCheck1.CuratorName, entityToCheck2.CuratorName,

"Values must be equal");

Assert.AreEqual(entityToCheck1.HeadmanName, entityToCheck2.HeadmanName,

"Values must be equal");

}

 

[TestMethod]

public void TestGetByIdGroup()

{

base.TestGetByIdGeneric();

}

 

[TestMethod]

public void TestGetAllGroup()

{

base.TestGetAllGeneric();

}

 

[TestMethod]

public void TestDeleteGroup()

{

base.TestDeleteGeneric();

}

 

[TestMethod]

public void TestGetGroupByName()

{

Group group1 = groupDAO.getGroupByName(entity1.GroupName);

Assert.IsNotNull(group1,

"Service method getGroupByName should return group if successfull");

Group group2 = groupDAO.getGroupByName(entity2.GroupName);

Assert.IsNotNull(group2,

"Service method getGroupByName should return group if successfull");

Group group3 = groupDAO.getGroupByName(entity3.GroupName);

Assert.IsNotNull(group3,

"Service method getGroupByName should return group if successfull");

checkAllPropertiesEqual(group1, entity1);

checkAllPropertiesEqual(group2, entity2);

checkAllPropertiesEqual(group3, entity3);

}

 

[TestMethod]

public void TestGetAllStudentOfGroup()

{

createEntitiesForStudent();

Assert.IsNotNull(student1, "Please, create object for student1");

Assert.IsNotNull(student2, "Please, create object for student2");

Assert.IsNotNull(student3, "Please, create object for student3");

 

entity1.StudentList.Add(student1);

student1.Group = entity1;

entity1.StudentList.Add(student2);

student2.Group = entity1;

entity1.StudentList.Add(student3);

student3.Group = entity1;

 

Group savedObject = null;

try

{

dao.SaveOrUpdate(entity1);

savedObject = getPersistentObject(entity1);

Assert.IsNotNull(savedObject,

"DAO method saveOrUpdate should return entity if successfull");

checkAllPropertiesEqual(savedObject, entity1);

entity1 = savedObject;

}

catch (Exception)

{

Assert.Fail("Fail to save entity1");

}

 

IList<Student> studentList =

groupDAO.getAllStudentOfGroup(entity1.GroupName);

Assert.IsNotNull(studentList, "List can't be null");

Assert.IsTrue(studentList.Count == 3,

"Count of students in the list must be 3");

checkAllPropertiesEqualForStudent(studentList[0], student1);

checkAllPropertiesEqualForStudent(studentList[1], student2);

checkAllPropertiesEqualForStudent(studentList[2], student3);

}

 

[TestMethod]

public void TestDelGroupByName()

{

try

{

groupDAO.delGroupByName(entity2.GroupName);

}

catch (Exception)

{

Assert.Fail("Deletion should be successful of entity2");

}

 

// Checking if other two entities can be still found

getEntityGeneric(entity1.Id, entity1);

getEntityGeneric(entity3.Id, entity3);

 

// Checking if entity2 can not be found

try

{

Group foundGroup = null;

foundGroup = dao.GetById(entity2.Id);

Assert.IsNull(foundGroup,

"After deletion entity should not be found with groupName " +

entity2.GroupName);

}

catch (Exception)

{

Assert.Fail("Should return null if finding the deleted entity");

}

 

// Checking if other two entities can still be found in getAll list

List<Group> list = getListOfAllEntities();

Assert.IsTrue(list.Contains(entity1),

"After dao method GetAll list should contain entity1");

Assert.IsTrue(list.Contains(entity3),

"After dao method GetAll list should contain entity3");

}

 

protected void createEntitiesForStudent()

{

student1 = new Student();

student1.FirstName = "Ivanov";

student1.LastName = "Kiril";

student1.Sex = 'M';

student1.Year = 1995;

 

student2 = new Student();

student2.FirstName = "Petrenko";

student2.LastName = "Ivan";

student2.Sex = 'M';

student2.Year = 1997;

 

student3 = new Student();

student3.FirstName = "Karpov";

student3.LastName = "Danil";

student3.Sex = 'M';

student3.Year = 2000;

}

 

protected void checkAllPropertiesEqualForStudent(Student entityToCheck1,

Student entityToCheck2)

{

Assert.AreEqual(entityToCheck1.FirstName, entityToCheck2.FirstName,

"Values must be equal");

Assert.AreEqual(entityToCheck1.LastName, entityToCheck2.LastName,

"Values must be equal");

Assert.AreEqual(entityToCheck1.Sex, entityToCheck2.Sex,

"Values must be equal");

Assert.AreEqual(entityToCheck1.Year, entityToCheck2.Year,

"Values must be equal");

}

}

}

 

10. Текст тестового класса StudentDAO приведен ниже

 

using System;

using System.Collections.Generic;

using Microsoft.VisualStudio.TestTools.UnitTesting;

using lab6.domain;

using lab6.dao;

using NHibernate.Criterion;

using NHibernate;

 

namespace lab6

{

[TestClass]

public class TestStudentDAO:TestGenericDAO<Student>

{

protected IStudentDAO studentDAO = null;

protected IGroupDAO groupDAO = null;

protected Group group = null;

 

public TestStudentDAO():base()

{

DAOFactory daoFactory = new NHibernateDAOFactory(session);

studentDAO = daoFactory.getStudentDAO();

groupDAO = daoFactory.getGroupDAO();

setDAO(studentDAO);

}

 

protected override void createEntities()

{

entity1 = new Student();

entity1.FirstName = "Ivanov";

entity1.LastName = "Kiril";

entity1.Sex = 'M';

entity1.Year = 1995;

 

entity2 = new Student();

entity2.FirstName = "Petrenko";

entity2.LastName = "Ivan";

entity2.Sex = 'M';

entity2.Year = 1997;

 

entity3 = new Student();

entity3.FirstName = "Karpov";

entity3.LastName = "Danil";

entity3.Sex = 'M';

entity3.Year = 2000;

}

 

protected override void checkAllPropertiesDiffer(Student entityToCheck1,

Student entityToCheck2)

{

Assert.AreNotEqual(entityToCheck1.FirstName, entityToCheck2.FirstName,

"Values must be different");

Assert.AreNotEqual(entityToCheck1.LastName, entityToCheck2.LastName,

"Values must be different");

Assert.AreNotEqual(entityToCheck1.Year, entityToCheck2.Year,

"Values must be different");

}

 

protected override void checkAllPropertiesEqual(Student entityToCheck1,

Student entityToCheck2)

{

Assert.AreEqual(entityToCheck1.FirstName, entityToCheck2.FirstName,

"Values must be equal");

Assert.AreEqual(entityToCheck1.LastName, entityToCheck2.LastName,

"Values must be equal");

Assert.AreEqual(entityToCheck1.Sex, entityToCheck2.Sex,

"Values must be equal");

Assert.AreEqual(entityToCheck1.Year, entityToCheck2.Year,

"Values must be equal");

}

 

[TestMethod]

public void TestGetByIdStudent()

{

base.TestGetByIdGeneric();

}

 

[TestMethod]

public void TestGetAllStudent()

{

base.TestGetAllGeneric();

}

 

[TestMethod]

public void TestDeleteStudent()

{

base.TestDeleteGeneric();

}

 

[TestMethod]

public void TestGetStudentByGroupFirstNameAndLastName()

{

group = new Group();

group.GroupName = "KS-091";

group.CuratorName = "Pronin P. P.";

group.HeadmanName = "Volosniy R. R.";

group.StudentList.Add(entity1);

entity1.Group = group;

group.StudentList.Add(entity2);

entity2.Group = group;

group.StudentList.Add(entity3);

entity3.Group = group;

Group savedGroup = null;

try

{

groupDAO.SaveOrUpdate(group);

savedGroup = getPersistentGroup(group);

Assert.IsNotNull(savedGroup,

"DAO method saveOrUpdate should return group if successfull");

checkAllPropertiesEqualGroup(savedGroup, group);

group = savedGroup;

}

catch (Exception)

{

Assert.Fail("Fail to save group");

}

getStudentByGroupFirstNameAndLastName(entity1, group.GroupName,

entity1.FirstName, entity1.LastName);

getStudentByGroupFirstNameAndLastName(entity2, group.GroupName,

entity2.FirstName, entity2.LastName);

getStudentByGroupFirstNameAndLastName(entity3, group.GroupName,

entity3.FirstName, entity3.LastName);

group.StudentList.Remove(entity1);

group.StudentList.Remove(entity2);

group.StudentList.Remove(entity3);

entity1.Group = null;

entity2.Group = null;

entity3.Group = null;

groupDAO.Delete(group);

}

 

protected void getStudentByGroupFirstNameAndLastName(Student student,

string groupName, string firstName, string lastName)

{

Student foundStudent = null;

try

{

foundStudent = studentDAO.getStudentByGroupFirstNameAndLastName(

groupName, firstName, lastName);

Assert.IsNotNull(studentDAO,

"Service method should return student if successfull");

checkAllPropertiesEqual(foundStudent, student);

}

catch (Exception)

{

Assert.Fail("Failed to get student with groupName " +

groupName + " firstName " + firstName+" and lastName " + lastName);

}

}

 

protected Group getPersistentGroup(Group nonPersistentGroup)

{

ICriteria criteria = session.CreateCriteria(typeof(Group))

.Add(Example.Create(nonPersistentGroup));

IList<Group> list = criteria.List<Group>();

Assert.IsTrue(list.Count >= 1,

"Count of grups must be equal or more than 1");

return list[0];

}

 

protected void checkAllPropertiesEqualGroup(Group entityToCheck1,

Group entityToCheck2)

{

Assert.AreEqual(entityToCheck1.GroupName, entityToCheck2.GroupName,

"Values must be equal");

Assert.AreEqual(entityToCheck1.CuratorName, entityToCheck2.CuratorName,

"Values must be equal");

Assert.AreEqual(entityToCheck1.HeadmanName, entityToCheck2.HeadmanName,

"Values must be equal");

}

}

}

 

11. Произведите тестирование классов слоя доступа к данным. Все тесты должны быть успешно пройдены.



<== предыдущая лекция | следующая лекция ==>
Unit Testing Framework от Microsoft | Задание на лабораторную работу


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.668 сек.