Tôi một phần chế giễu một lớp học có hai phương pháp:Nsubstitute Calls Phương pháp trong khi mặc dù có DoNotCallBase
public void EmitTo(string connectionId, ChatMessage message)
{
Clients.Client(connectionId).broadcastMessage(message.User.UserName, message.Message);
}
public virtual void Broadcast(ChatMessage message)
{
Clients.All.broadcastMessage(message.User.UserName, message.Message);
}
Trong thử nghiệm của tôi [SetUp]
tôi có những cuộc gọi:
hub = Substitute.ForPartsOf<ChatHub>(myMockedClient, context, groupManager);
hub.When(x => x.Broadcast(Arg.Any<ChatMessage>())).DoNotCallBase();
hub.When(x => x.EmitTo(Arg.Any<string>(), Arg.Any<ChatMessage>())).DoNotCallBase();
Tôi có không có vấn đề với các cuộc gọi Broadcast
trên dòng này hoặc sau này khi tôi gọi phương pháp (họ không làm bất cứ điều gì như mong đợi) nhưng kỳ lạ dòng thứ ba của tôi ném một lỗi:
System.ArgumentException : Argument cannot be null or empty Parameter name: connectionId
Tôi bị mất một chút vì tôi đã làm điều tương tự cho cả hai phương pháp và nhận được một hành vi khác nhau, tại sao phương thức của tôi gọi là EmitTo
?
Tôi rất tập trung vào phần còn lại tôi đã bỏ lỡ cơ bản, cảm ơn rất nhiều. – Lomithrani
Câu trả lời đúng đã được đưa ra nhưng tôi cũng muốn thêm liên kết tới tài liệu cho người dùng khác: http://nsubstitute.github.io/help/partial-subs/ –