好吧,我无法想到如何正确地说这个问题,但是一个示例会清除它。假设我有这个课:
public class Subject
{
public int Id { get; set; }
public string Name { get; set; }
public ICollection<Subject> Children { get; set; }
}
因此,一个受试者有一系列主题,而这些主题又可以具有主题。然后我有了这种方法。这样可以节省主题和主题的孩子,如果有的话:
public int CreateSubject(Subject newSubject)
{
//...
}
创建主题后,返回了新ID。因此,在我的单元测试中,我可以通过检查返回值不是零来测试是否创建了一个主题。现在,我有一个命名为返回ID的资产的测试:
CreateSubject_ValidValues_CreatesSubject
,但我意识到即使孩子们没有保存,这也可以成功。我想拥有类似的东西:
CreateSubject_ValidValuesWithValidChildren_CreatesSubjectAndChildren
但我不确定如何检查孩子是否被成功保存。我不确定该断言。我该如何测试这样的测试?
简单:您无法测试CreateSubject( )
正在创建有效的主题,除非您有另一个功能,然后通过返回的ID将其获取。在这种情况下要测试的有用的"单元"不是功能CreateSubject
,而是任何负责主题对象创建/检索等的单位。