如何用XUnit验证方法在没有Moq的情况下被调用或没有被调用



我有一个类,它有一个更新方法。在update方法中,我检查它的属性是否真的发生了更改。

public class Person
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public void UpdatePerson(Person person)
{
if (FirstName == person.FirstName && LastName == person.LastName) return;
ApplyChanges(person);
}
public void ApplyChanges(Person person)
{
//....
}
}

我需要确保当Person属性相同时不会调用ApplyChanges方法。

这更像是一种复制粘贴,但我相信微软的建议适用于您的问题:

在大多数情况下,不应该需要测试私有方法。私有方法是一个实现细节。你可以这样想方式:私有方法永远不会孤立存在。在某种程度上将成为一个面向公共的方法,将私有方法调用为作为其实施的一部分。你应该关心的是结局调用私有方法的公共方法的结果。

我建议详细阅读我提供的链接。

话虽如此,如果你真的认为这个私有方法需要测试,那么这意味着它可能应该被转移到一个单独的类。然而,从你的例子来看,情况似乎并非如此。

相关内容

  • 没有找到相关文章

最新更新