public static void Main()
public static void Test1(){
var myClassMock = new Mock<IMyClass>();
string result = myClassMock.Object.MyFunctionPublic1();
result.Should().Be("hello world private");
myClassMock.Verify(x => x.MyFunctionPublic2(), Times.AtLeastOnce());
public static void Test2(){
var myClassMock = new Mock<IMyClass>();
string result = myClassMock.Object.MyFunctionPublic2();
result.Should().Be("world private");
myClassMock.Verify(x => x.MyFunctionPublic2(), Times.AtLeastOnce());
public interface IMyClass
string MyFunctionPublic1();
string MyFunctionPublic2();
public class MyClass : IMyClass
public string MyFunctionPublic1()
return "hello " + MyFunctionPublic2();
public string MyFunctionPublic2()
return "world " + MyFunctionPrivate1();
private string MyFunctionPrivate1(){