C# 如何模拟接口中接口的只读属性已被模拟 公共接口IPerson { 薪水计算器薪水计算器{get;} } 公共接口ISalaryCalculator { } 公共类工资计算器:ISalaryCalculator { public int JoiningDate{get;set;} 公共工资计算器(整数合并日期) { 接合日期=接合日期; } } [测试夹具] 公共类人员配置 { 伊佩森人; [设置] 公共作废设置() { person=替换为(); } [测试] 公众人士() { person.SalaryCalculator.Returns(新的SalaryCalculator()); 或 person.SalaryCalculator.Returns(替换为()); } }
我尝试使用上述两个选项进行模拟,但都不起作用 NSSubstitute.Exceptions.CouldNotSetReturns由于类型不匹配异常: 无法为返回ISalaryCalculatorProxy类型的值 IPerson.get_SalaryCalculator(应为SalaryCalculator类型)C# 如何模拟接口中接口的只读属性已被模拟 公共接口IPerson { 薪水计算器薪水计算器{get;} } 公共接口ISalaryCalculator { } 公共类工资计算器:ISalaryCalculator { public int JoiningDate{get;set;} 公共工资计算器(整数合并日期) { 接合日期=接合日期; } } [测试夹具] 公共类人员配置 { 伊佩森人; [设置] 公共作废设置() { person=替换为(); } [测试] 公众人士() { person.SalaryCalculator.Returns(新的SalaryCalculator()); 或 person.SalaryCalculator.Returns(替换为()); } },c#,nunit,nsubstitute,C#,Nunit,Nsubstitute,我尝试使用上述两个选项进行模拟,但都不起作用 NSSubstitute.Exceptions.CouldNotSetReturns由于类型不匹配异常: 无法为返回ISalaryCalculatorProxy类型的值 IPerson.get_SalaryCalculator(应为SalaryCalculator类型) 在这种情况下,我们如何进行模拟?异常指示模拟成员应该返回的内容 …期望类型工资计算器 返回实际的类,因为这是模拟接口成员返回的 public interface IPerson {
在这种情况下,我们如何进行模拟?异常指示模拟成员应该返回的内容 …期望类型工资计算器 返回实际的类,因为这是模拟接口成员返回的
public interface IPerson
{
SalaryCalculator SalaryCalculator { get; }
}
public interface ISalaryCalculator
{
}
public class SalaryCalculator : ISalaryCalculator
{
public int JoiningDate { get; set; }
public SalaryCalculator(int joiningDate)
{
JoiningDate = joiningDate;
}
}
[TestFixture]
public class PersonFixture
{
IPerson person;
[SetUp]
public void SetUp()
{
person = Substitute.For<IPerson>();
}
[Test]
public void TestPerson()
{
person.SalaryCalculator.Returns(new SalaryCalculator());
OR
person.SalaryCalculator.Returns(Substitute.For<ISalaryCalculator>());
}
}
SalaryCalculator instance = new SalaryCalculator(1);
person.SalaryCalculator.Returns(instance);