gpt4 book ai didi

c# - 单元测试调用另一个类的其他方法的方法

转载 作者:太空宇宙 更新时间:2023-11-03 20:18:30 25 4
gpt4 key购买 nike

请看下面的代码

int sum(int a, int b)
{
int x = memberInstance.xyz(a); // memberInstance is an object of another class
.....
.....
}

比如说,众所周知,xyz 方法返回 1-10 之间的数字。现在,我想为 sum 方法开发单元测试方法,我想用任意返回值 [1-10 之间的任何值] 替换方法调用 memberInstance.xyz(a) 。请让我知道我怎样才能做到这一点?如果可能,请提供示例代码。

最佳答案

你应该使用它的接口(interface)。

public interface IMemberInstance
{
int xyz {get;}
}

public class MemberInstance : IMemberInstance
{
... // the real class's implementation + code here
}

public class MockMemberInstance : IMemberInstance
{
// the test class can return a test value
int xyz(int a) { return 10; }
}

然后在你的类中进行测试(例如MyClass)

private IMemberInstance memberInstance;

public MyClass(IMemberInstance memberInstance)
{
this.memberInstance = memberInstance;
}

int sum(int a, int b)
{
int x = memberInstance.xyz(a); // memberInstance is an object of another class
.....
.....
}

这样你就可以将一个 IMemberInstance 传递给要测试的类。这样你就可以用一个测试类来伪造它(模拟实现)

关于c# - 单元测试调用另一个类的其他方法的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15151772/

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