클라이언트 계정 저장소의 CreateClient 메소드가 호출 된 경우이를 테스트하는 메소드가 있습니다. 시험을보십시오.가짜로 MustHaveHappend (object)를 올바르게 어설 션하는 법
[TestMethod]
public void CreateNewBasicClientAccount_NewBasicClient_CreatesNewClientBasicClient()
{
// Arrange
var clientAccountToCreate = new ClientAccount
{
Name = "Name",
};
var clientAccountToCreateDto = AutoMapper.Mapper.Map<ClientAccount, ClientAccountDto>(clientAccountToCreate);
var clientAccountRepository = A.Fake<IClientAccountRepository>();
var clientAccountManager = new ClientAccountManager(clientAccountRepository);
// Act
clientAccountManager.CreateClient(clientAccountToCreate);
// Assert
A.CallTo(
() => clientAccountRepository.CreateClient(A<ClientAccountDto>.That.IsNotNull<ClientAccountDto>()))
.MustHaveHappened();
A.CallTo(
() => clientAccountRepository.CreateClient(A<ClientAccountDto>.Ignored))
.MustHaveHappened();
A.CallTo(
() => clientAccountRepository.CreateClient(clientAccountToCreateDto))
.MustHaveHappened();
}
시험에서 내 ClientAccountManager 클래스의 법 부분은
public void CreateClient(ClientAccount client)
{
var clientDto = AutoMapper.Mapper.Map<ClientAccount, ClientAccountDto>(client);
_clientAccountRepository.CreateClient(clientDto);
}
처음 두 테스트 통과에 주장 저장소의 CreateClient 메소드를 호출하고 있지만보다 구체적인 3 어설 결과 실패 메시지
InterfaceNameSpace.IClientAccountRepository.CreateClient (clientDto : DtoNameSpace.ClientAccountDto) 한 번 이상 찾을 것으로 예상하지만, 그것을 발견 # 0 호출 시간 :
ClientAccount 클래스와 ClientAccountDto 클래스는 모두 동일한 속성을 갖습니다. 실패한 assert를 전달하는 입력은 코드가 전달되기 위해 유선으로 인식되지만 실패합니다.