我正在使用NDBUbit从XML文件加载数据。现在,我正在为xml文件中的每条记录(我们的所有表的主键都是唯一标识符)手动提供GUID。但是,我想知道是否有更好的方法来做到这一点?使用NDBUnit为数据提供GUID
0
A
回答
0
对于XML文件中支持NDbUnit的所有测试数据,您的PK值都是GUID类型,请注意,所需的全部数据类型都是GUID - 它实际上并不是一个GUID '随机'GUID。
对于这样的测试数据,以便您可以正确引用FK中的其他PK(例如),我总是建议在测试数据中使用“确定性人为创建的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是,他们32chars长格式8chars,4chars- 4chars-4chars-12chars。如果你正在像这样手工制作你的测试数据,那么没有任何东西可以保持所有角色不变。这种方法消除了为测试数据生成“实际GUID”的需要,并允许您通过简单的GUID重复表示来轻松地引用这些GUID,如上面的示例所示。
请注意,在这种情况下,您正在为您输入到测试数据中的GUID的“唯一性”承担100%的责任,因此此测试数据只能安全地与其他GUID-基于数据行。这个(通常)不应该是任何问题,因为NDbUnit的整个要点是单独加载和管理这样的数据。
如果您不想在这样的XML文件中手工编辑您的测试数据,我们接近一个名为'NDbUnit DataSet Editor'的工具的Alpha版本,该工具提供了用于编辑测试数据的GUI和还包含一个'生成并插入GUID'工具栏按钮,用于这种情况。但是请注意,在这种情况下生成的GUID将是'真正的'GUID,这意味着复制和粘贴将是引用另一个记录的FK作为DataSet中其他位置的唯一合理方法。
希望这会有所帮助。
相关问题
- 1. 加载XML数据转换成ndbunit
- 2. 使用array_count_values提供的数据
- 3. 用数据提供UIView
- 4. 在Visual Studio 2015中为Firebird提供的ADO.NET数据提供者
- 5. 为核心数据应用程序提供基础数据?
- 6. 为VBA提供数据标签excel
- 7. 为Blend和VS提供designtime ViewModel数据
- 8. emberjs为多个组件提供数据
- 9. EXTJS 4 - 为XTemplate提供数据
- 10. 为Robolectric提供SharedPreferences的测试数据
- 11. 如何为Winamp插件提供数据?
- 12. 使用来自外部数据提供者(API)的数据
- 13. 使用内容提供者从数据库加载数据
- 14. 使用ArrayCollection数据提供程序访问ComboBox的数据
- 15. 使用数据提供者的摘要数据填充图表
- 16. 问题与NDBUnit
- 17. 使用NDbUnit与具有表模式
- 18. 从GUID中提取数字
- 19. 将数据提供给MySQL
- 20. 与数据提供者
- 21. 提供WCF测试数据
- 22. 数据提供者接口
- 23. 通过数据提供商
- 24. PHPUnit的数据提供
- 25. LINQ2SQL数据库提供商
- 26. asp:listbox如何提供数据?
- 27. 使用GUID作为与ASP.NET MVC的数据库中的ID
- 28. 使用ADO.Net数据提供程序使用C#访问Google Spreadsheets?
- 29. 为强化学习算法提供高效数据供给
- 30. Unity:为InjectionConstructor提供参数
这就是我所做的“对于这样的测试数据,以便您可以正确引用FK中的其他PK(例如),我总是建议在测试数据中使用”确定性人为创建的GUID“。满足要求时,该值是一个GUID,并在制作测试数据时更容易与他们合作。“ – jess 2010-05-20 07:35:24
但是,用手写这些GUID还是让我很痛苦 – jess 2010-05-20 07:35:44