当返回值仅适用于父时,如何单位测试类属性



好吧,我无法想到如何正确地说这个问题,但是一个示例会清除它。假设我有这个课:

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,而是任何负责主题对象创建/检索等的单位。

相关内容

  • 没有找到相关文章

最新更新