Tôi có một lớp trừu tượng có phương thức ảo. Phương thức này là ảo trong trường hợp triển khai sau này cần phải ghi đè chức năng đó.Thiết lập Moq để bỏ qua một phương thức ảo
Tuy nhiên, Moq proxy tất cả các phương pháp ảo vì vậy tôi dường như không có khả năng kiểm tra mã thực tế đó là viết ra, và thay vào đó sử dụng các thiết lập Mock cho phương pháp đó (mà hiện nay là để trả về giá trị mặc định).
Ví dụ trừu tượng:
public abstract SomeAbstract
{
public abstract Format(IFormatProvider provider, string format)
{
// does some stuff i need to test
}
}
kiểm tra NUnit của tôi:
[Test]
public void Should_Set_Format_State()
{
Mock<SomeAbstract> mock = new Mock<SomeAbstract>();
mock.Object.Format(CultureInfo.CurrentCulture, "format string");
// do tests to make sure Format correctly changed the object's state
}
Làm thế nào để thiết lập đối tượng Mock của tôi để chỉ cho phép làm việc Format
phương pháp ảo của tôi, mà không cần phải loại bỏ virtual
từ phương pháp này ?! Có lẽ tôi đang lạm dụng khái niệm mocking trong trường hợp này.
Câu hỏi thú vị, tôi đã học được điều gì đó! Yay. –