gpt4 book ai didi

c# - NSubstitute:Substitute.For<> 和 Substitute.ForPartsOf 的区别

转载 作者:太空狗 更新时间:2023-10-30 00:18:22 26 4
gpt4 key购买 nike

我正在使用 NSubstitute。我必须伪造一个类,无法挖掘出 Substitute.For<...>() 的区别和 Substitute.ForPartsOf<...> .我已经阅读了文档,但不明白两者的行为不同。

最佳答案

Substitute.For<>() 创建完整模拟,而 Substitute.ForPartsOf<> 创建部分模拟。例如:

[Test]
public void Test()
{
var person = Substitute.For<Person>();
person.GetAge().Returns(20);
var age = person.GetAge(); //returns 20
var name = person.GetName(); //returns empty string

var partialPerson = Substitute.ForPartsOf<Person>();
partialPerson.GetAge().Returns(20);
var age2 = partialPerson.GetAge(); //returns 20
var name2 = partialPerson.GetName(); //returns John
}

public class Person
{
public string Name { get; } = "John";
public int Age { get; } = 10;

public virtual int GetAge()
{
return Age;
}

public virtual string GetName()
{
return Name;
}
}

一般ForPartsOf<>在没有被替换的情况下会使用具体的实现。

关于c# - NSubstitute:Substitute.For<> 和 Substitute.ForPartsOf 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38199310/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com