Tôi muốn thực hiện phương pháp mở rộng giả, nhưng nó không hoạt động. Điều này có thể giải quyết như thế nào?Phương pháp mở rộng giả lập NSubstitute
public static class RandomExtensions
{
public static IEnumerable<int> NextInt32s(this System.Random random, int neededValuesNumber, int minInclusive, int maxExclusive)
{
// ...
}
}
[Fact]
public void Select()
{
var randomizer = Substitute.For<DefaultRandom>();
randomizer.NextInt32s(3, 1, 10).Returns(new int[] { 1, 2, 3 });
}
AFAIK bạn không thể giả lập phương pháp mở rộng với khung mocking miễn phí. Bởi vì các phương thức mở rộng chỉ là các phương thức tĩnh và bạn không thể giả lập một phương thức tĩnh với các khuôn khổ mocking miễn phí. TypeMock làm điều này tôi nghĩ (nhưng đó là vượt ra ngoài câu hỏi). –