Я частично насмешливый класс, который имеет эти два метода:Nsubstitute вызывает метод в Когда даже если есть 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);
}
В моем тесте [SetUp]
у меня есть эти вызовы:
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();
у меня есть нет проблем с вызовом Broadcast
в этой строке или позже, когда я вызываю метод (они ничего не делают, как ожидалось), но, как ни странно, моя третья строка вызывает ошибку:
System.ArgumentException : Argument cannot be null or empty Parameter name: connectionId
Я немного потерялся, так как я сделал то же самое для обоих методов и получил другое поведение, почему мой метод, когда метод вызывает EmitTo
?
Я был так сосредоточен на остальном, что пропустил основное, спасибо большое. – Lomithrani
Правильный ответ уже дан, но я хотел добавить ссылку на документацию и для других пользователей: http://nsubstitute.github.io/help/partial-subs/ –