2010-03-23 21 views
0

我正在使用NDBUbit從XML文件加載數據。現在,我正在爲xml文件中的每條記錄(我們的所有表的主鍵都是唯一標識符)手動提供GUID。但是,我想知道是否有更好的方法來做到這一點?使用NDBUnit爲數據提供GUID

回答

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中其他位置的唯一合理方法。

希望這會有所幫助。

+0

這就是我所做的「對於這樣的測試數據,以便您可以正確引用FK中的其他PK(例如),我總是建議在測試數據中使用」確定性人爲創建的GUID「。滿足要求時,該值是一個GUID,並在製作測試數據時更容易與他們合作。「 – jess 2010-05-20 07:35:24

+0

但是,用手寫這些GUID還是讓我很痛苦 – jess 2010-05-20 07:35:44

相關問題