类方法调用中的 Moq .net
本文关键字:Moq net 调用 类方法 | 更新日期: 2023-09-27 18:31:27
我是使用最小起订量并遇到一些逻辑问题的新手。
我有一个类有两个方法,在该类中,方法一调用方法二,如下所示:
public class TestClass
{
public virtual string FindUser(string user)
{
//do some Stuff
string check = UserCheck("some string to check");
//do some stuff
return "some other userstring";
}
protected virtual string UserCheck(string blubb)
{
//do some other stuff
return "some string";
}
}
有时我会将某些功能交换为其他函数,以将某些功能封装在同一类中。
我不知道如何使用 Moq 对此进行单元测试,因为我需要对我自己的类进行 Moq 我正在测试的内容。我发现这是一个"解决方案",
但这对我来说不是解决方案(我认为),因为我试图将某些功能封装在另一个函数中。我正在做的事情是错误的,还是我每次都必须创建一个新类来封装一个函数?
如果您的实现在方法调用中不使用另一个类,则可能不需要使用模拟。模拟您正在测试的实现(事件的一部分)是没有意义的。如果您认为它变得太复杂,请将它的某些部分封装在另一个类中,并将其用作依赖项。
你做错了。你不应该对你的SUT进行修改,因为这样做会让你的事情变得更复杂,不要测试正确的东西。你应该使用moq(或任何其他模拟框架)来模拟你的SUT的合作者。
因此,在您的情况下,您可以在不模拟UserCheck的情况下测试FindUser...因为需要该方法来完成该功能。
呵呵