Я пытаюсь протестировать класс, который устанавливает в нем другой класс.Это вызов класса, которому я хочу высказать.
Возможно ли это, или это обходной путь? Я упускаю более простой способ?
Ниже я написал более простой пример, в котором все еще есть те же проблемы, что и у моего основного кода.
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);
}