我正在尝试测试一个类,这个类在其中实例化了另一个类。这是我想要模拟的已声明的类调用。
这是可能的吗,还是他们有办法绕过它/我错过了更简单的方法?
下面我写了一个更简单的例子,它仍然存在与我的主代码相同的问题。
public interface my_interface
{
int returns_25();
}
public class class_i_want_to_mock : my_interface
{
public int returns_25()
{
// TEST SHOULD FAIL SO NEED MOCK TO PASS THE CASE
return 7645745;
}
}
在另一个名称空间中(它有权访问):
public class class_to_test
{
public static int returns_25()
{
class_i_want_to_mock _tempClass= new class_i_want_to_mock ();
// Will return 7645745 unless moq changes return value
int _temp_int = _tempClass.returns_25()
return _temp_int;
}
}
我的测试(失败):
[Test]
public void test_returns_25()
{
// Mock
Mock<my_interface> myMock = new Mock<my_interface>();
myMock.Setup(m => m.returns_25()).Returns(25);
// Act
int return_number = class_to_test.returns_25();
// Assert
Assert.AreEqual(25, return_number);
}
转载请注明出处:http://www.56zzk.com/article/20230526/2081360.html