2014-01-23 110 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

当然。我没有安装流畅的断言,只是有兴趣,并通过文档阅读:) –