-
Notifications
You must be signed in to change notification settings - Fork 1
Associated with testing Hub T
NightAngell edited this page Feb 23, 2019
·
8 revisions
Knowledge from basics and common are required to understand this topic.
For Context and Groups mocks see here.
public Mock<IHubCallerClients<TIHubResponses>> ClientsMock { get; private set; }
public Mock<TIHubResponses> ClientsAllMock { get; private set; }
public Mock<TIHubResponses> ClientsAllExceptMock { get; private set; }
public Mock<TIHubResponses> ClientsCallerMock { get; private set; }
public Mock<TIHubResponses> ClientsClientMock { get; private set; }
public Mock<TIHubResponses> ClientsClientsMock { get; private set; }
public Mock<TIHubResponses> ClientsGroupMock { get; private set; }
public Mock<TIHubResponses> ClientsGroupExceptMock { get; private set; }
public Mock<TIHubResponses> ClientsGroupsMock { get; private set; }
public Mock<TIHubResponses> ClientsOthersMock { get; private set; }
public Mock<TIHubResponses> ClientsOthersInGroupMock { get; private set; }
public Mock<TIHubResponses> ClientsUserMock { get; private set; }
public Mock<TIHubResponses> ClientsUsersMock { get; private set; }
Do not use
ClientsMock
directly to verify its child (child is for example: Clients.Caller). Use child mock instead to do this (for Clients.Caller it is ClientsCallerMock). Direct use ofClientsMock
can cause unexpected behaviour when you try verify something.
- Create Hub
- Assign to Hub required properties using
AssignToHubRequiredProperties
- Invoke Hub method
- Verify (Below example how do this)
public void TestedMethodName_TestScenario_ExpectedResult()
{
//Arrange
var exampleHub = new ExampleHub();
AssignToHubRequiredProperties(exampleHub);
//Act
//Assume DoSomething call inside:
//Clients
// .Caller
// .NotifyAboutSomethingAwesome("First argument", "SecondArgument");
exampleHub.DoSomething()
//Assert
ClientsCallerMock.Verify(
x => x.NotifyAboutSomethingAwesome(
"First argument",
"SecondArgument",
),
Times.Once()
);
}