2010-03-23 6 views
0

Я использую NDBUbit для загрузки данных из XML-файла. Теперь я вручную даю GUID для каждой записи (наш первичный ключ для всех таблиц является уникальным идентификатором) в файле xml. Но, Интересно, есть ли лучший способ сделать это?Предоставление GUID для данных с использованием NDBUnit

ответ

0

Для всех тестовых данных в файлах XML для поддержки NDbUnit, где ваши значения PK имеют тип GUID, обратите внимание, что все, что требуется для типа данных, является GUID - его на самом деле не должно быть 'random' GUID.

Для таких тестовых данных, чтобы вы могли правильно ссылаться на другие ПК в FK (например), я всегда рекомендую использовать «детерминированные человеческие GUID» в ваших тестовых данных. Они оба удовлетворяют требованию, чтобы значение было GUID и упрощало работу с ними при создании ваших тестовых данных.

В качестве примера, видим следующее:

<?xml version="1.0" encoding="utf-8" ?> 
<UserDS xmlns="http://tempuri.org/UserDS.xsd"> 
    <Role> 
     <ID>11111111-1111-1111-1111-111111111111</ID> 
     <Name>Admin</Name> 
     <Description>Serves as an administrator</Description> 
    </Role> 
    <Role> 
     <ID>22222222-2222-2222-2222-222222222222</ID> 
     <Name>User</Name> 
     <Description>User with limited security</Description> 
    </Role> 
    <dbo.User> 
    <ID>22222222-2222-2222-2222-222222222222</ID> 
    <FirstName>John</FirstName> 
    <LastName>Williams</LastName> 
    <Age>30</Age> 
    <SupervisorID>11111111-1111-1111-1111-111111111111</SupervisorID> 
    </dbo.User> 
    <dbo.User> 
    <ID>11111111-1111-1111-1111-111111111111</ID> 
    <FirstName>Hammad</FirstName> 
     <LastName>Awan</LastName> 
     <Age>29</Age> 
    </dbo.User> 
    <UserRole> 
     <UserID>11111111-1111-1111-1111-111111111111</UserID> 
     <RoleID>11111111-1111-1111-1111-111111111111</RoleID> 
    </UserRole> 
    <UserRole> 
     <UserID>22222222-2222-2222-2222-222222222222</UserID> 
     <RoleID>11111111-1111-1111-1111-111111111111</RoleID> 
    </UserRole> 
    <UserRole> 
     <UserID>11111111-1111-1111-1111-111111111111</UserID> 
     <RoleID>22222222-2222-2222-2222-222222222222</RoleID> 
    </UserRole> 
</UserDS> 

В этом случае, чтобы управлять этим тестовые данные все, что вам нужно «знать» о GUIDs том, что они 32chars долго в формате 8chars-4chars- 4chars-4chars-12chars. Нет НИЧЕГО, чтобы все персонажи были ТОЛЬКО, если вы создаете свои тестовые данные «вручную», как это. Этот подход исключает необходимость генерации «фактических GUID» для ваших тестовых данных и позволяет легко ссылаться на них путем простого повторения представлений GUID, как показано в примере выше.

Обратите внимание, что в этом сценарии вы принимаете 100% ответственности за «единство» идентификаторов GUID, которые вы вводите в свои тестовые данные, чтобы эти тестовые данные можно было безопасно использовать отдельно от других GUID- основанные на данных. Это (как правило) не должно быть проблемой, так как вся точка NDbUnit - это загрузка и управление данными, такими как это изолировано.

Если вы не хотите редактировать свои тестовые данные вручную в XML-файле, подобном этому, мы близки к альфа-выпуску инструмента под названием «Редактор DataDet NDbUnit», который предоставляет графический интерфейс для редактирования тестовых данных и также содержит кнопку панели «Создать и вставить GUID» для таких ситуаций. Однако обратите внимание, что GUID, сгенерированные в таком случае, будут «реальными» GUID, что означает, что копирование и вставка будет единственным разумным способом ссылаться на один как FK другой записи в другом месте в DataSet.

Надеюсь, это поможет.

+0

Yeh, вот что я сделал «Для таких тестовых данных, чтобы вы могли правильно ссылаться на другие ПК в FK (например), я всегда рекомендую использовать« детерминированные человеческие GUID »в ваших тестовых данных. удовлетворяют требованию, чтобы значение было GUID и упрощало работу с ними, когда вы создаете свои тестовые данные ». – jess

+0

Но мне все еще кажется боль, чтобы написать эти GUID вручную – jess

Смежные вопросы