我有三个类 - ConvertToXMLElement,ConvertToClass,SerialisableClass
ConvertToXMLElement有一个函数,它接受一个SerialisableClass实例并返回一个表示类值的XmlElement,ConvertToClass有一个函数,它接受一个XmlElement并返回一个SerialisableClass。
我试图编写一个单元测试来验证从ConvertToXMLElement返回的XmlElement,以确保可以通过ConvertToClass将XmlElement转换为正确的类。
现在,我能想象的唯一方法是让ConvertToClass尝试将XmlElement转换为类。
但这意味着单元测试中两个类之间存在依赖关系,理想情况下,单元测试在验证此类函数时不必关心另一个类。
答案 0 :(得分:1)
隔离是单元测试的标准,但测试序列化/反序列化并不是完全不可接受的,IMO。
这取决于谁将使用序列化数据。如果它只在你的两个类中使用,那么它是一个相对安全的快捷方式来一起测试它们。
OTOH,如果数据必须采用某种特殊格式以便其他程序可以使用,那么您绝对需要分别测试这两个阶段。这意味着您将实际检查序列化的XML以确定它是否满足外部要求,并且您将创建XML以用于满足相同标准的测试。
当然,即使不是绝对必要,你也可以将两者分开,但这通常会带来更多的工作。
答案 1 :(得分:0)
您必须隔离代码。您的代码总是具有依赖关系,因此我们的工作就是在进行单元测试时隔离代码。链接您的几个链接,以帮助您了解如何做到这一点。
https://msdn.microsoft.com/en-us/library/hh549174.aspx http://www.c-sharpcorner.com/UploadFile/dacca2/understand-stub-mock-and-fake-in-unit-testing/