Для всех тестовых данных в файлах XML для поддержки NDbUnit, где ваши значения PK имеют тип GUID, обратите внимание, что все, что требуется, это чтобы тип данных был GUID - на самом деле он не должен быть ' случайный 'GUID.
Для таких тестовых данных, чтобы вы могли правильно ссылаться на другие PK в 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>
В этом случае для управления этими тестовыми данными все, что вам нужно «знать» о GUID, это то, что они имеют длину 32 символа в формате 8chars-4chars-4chars-4chars-12chars. Нет НИЧЕГО, что не позволяет всем персонажам быть ОДНЫМИ, если вы создаете свои тестовые данные «вручную», как это. Этот подход устраняет необходимость в генерации «фактических идентификаторов GUID» для ваших тестовых данных и позволяет легко ссылаться на них с помощью простых повторяющихся представлений идентификаторов GUID, как показано в примере выше.
Обратите внимание, что в этом сценарии ВЫ берете на себя 100% ответственности за «уникальность» GUID, которые вы вводите в свои тестовые данные, поэтому эти тестовые данные можно безопасно использовать только в изоляции от других основанных на GUID строки данных. Это (как правило) не должно быть проблемой, поскольку весь смысл NDbUnit состоит в том, чтобы загружать и управлять такими данными, как это изолированно.
Если вы не хотите редактировать свои тестовые данные вручную в XML-файле, подобном этому, мы близки к альфа-версии инструмента под названием «NDbUnit DataSet Editor», который предоставляет графический интерфейс для редактирования тестовых данных, а также содержит кнопку панели инструментов «Генерировать и вставить GUID» для таких ситуаций. Тем не менее, обратите внимание, что GUID, сгенерированные в таком случае, будут «настоящими» GUID, что означает, что копирование и вставка будет единственным разумным способом ссылаться на один как FK другой записи в другом месте в DataSet.
Надеюсь, это поможет.