Saya menulis tes yang bergantung pada hasil metode ekstensi tetapi saya tidak ingin kegagalan metode ekstensi itu di masa mendatang untuk merusak tes ini. Mengolok-olok hasil itu tampaknya merupakan pilihan yang jelas tetapi Moq tampaknya tidak menawarkan cara untuk menimpa metode statis (persyaratan untuk metode ekstensi). Ada ide serupa dengan Moq.Protected dan Moq.Stub, tetapi mereka tampaknya tidak menawarkan apa pun untuk skenario ini. Apakah saya melewatkan sesuatu atau haruskah saya melakukannya dengan cara yang berbeda?
Berikut adalah contoh sepele yang gagal dengan "Harapan tidak valid pada anggota yang tidak dapat diganti" yang biasa . Ini adalah contoh buruk dari perlunya mengejek metode ekstensi, tetapi seharusnya begitu.
public class SomeType {
int Id { get; set; }
}
var ListMock = new Mock<List<SomeType>>();
ListMock.Expect(l => l.FirstOrDefault(st => st.Id == 5))
.Returns(new SomeType { Id = 5 });
Adapun setiap pecandu TypeMock yang mungkin menyarankan saya menggunakan Isolator sebagai gantinya: Saya menghargai upaya karena sepertinya TypeMock dapat melakukan pekerjaan itu dengan mata tertutup dan mabuk, tetapi anggaran kami tidak meningkat dalam waktu dekat.