2014-01-23 36 views
2

我試圖找到最流暢的方式來斷言某個字符串是一個有效的Guid。Fluent斷言比較字符串Guid

iterTags.GUIDstring

我的第一次嘗試以錯誤結尾,因爲string未執行Guid。好吧,我看到它的到來,因爲它是在黑暗中

iterTags.GUID.Should().BeAssignableTo<Guid>(); 

一個鏡頭所以我想出了這個有效的解決方案,但它不流利

Guid parsedGuid; 
if (!Guid.TryParseExact(iterTags.GUID, "D", out parsedGuid)) 
    Assert.Fail("iterTags.GUID: '{0}' is not a valid guid"); 

documentation我發現這樣做的沒有更好的辦法斷言。

我的問題:是否存在的一個流利方式斷言一個字符串是有效的Guid

也許,像...

iterTags.GUID.Should().BeParsedAs<Guid>() 

回答

3
Guid parsedGuid; 
Guid.TryParseExact(iterTags.GUID, "D", out parsedGuid).Should.BeTrue("because {0} is a valid Guid string representation", iterTags.GUID); 

new Action(() => new Guid(iterTags.GUID)).ShouldNotThrow("because {0} is a valid Guid string representation", iterTags.GUID); 
+0

偉大的解決方案。我只需要明確地創建一個Action: 新的Action(()=> new Guid(iterTags.GUID))。ShouldNotThrow(「」); –

+0

你會不會糾正你的第二個解決方案(或者告訴我,我錯了,如果它在你的VS編譯) –

+0

當然。我沒有安裝流暢的斷言,只是有興趣,並通過文檔閱讀:) –