C# 我应该对一个简单的更新应用程序服务进行单元测试吗?

C# 我应该对一个简单的更新应用程序服务进行单元测试吗?,c#,unit-testing,viewmodel,onion-architecture,C#,Unit Testing,Viewmodel,Onion Architecture,我是否应该对如下所示的简单应用程序服务进行单元测试 public void Update(UserAccountViewModel viewModel) { var instance = Mapper.Map<UserAccountViewModel, UserAccount>(viewModel); _userAccountService.UpdateInstance(instance); } 公共无效更新(UserAccountV

我是否应该对如下所示的简单应用程序服务进行单元测试

public void Update(UserAccountViewModel viewModel)
    {
        var instance = Mapper.Map<UserAccountViewModel, UserAccount>(viewModel);
        _userAccountService.UpdateInstance(instance);
    }
公共无效更新(UserAccountViewModel viewModel)
{
var instance=Mapper.Map(viewModel);
_userAccountService.UpdateInstance(实例);
}
正如您所看到的,它只接收视图模型,使用AutoMapper将其映射到域模型,并调用域服务方法来更新对象。如果我应该对它进行单元测试,那么我正在努力了解应该对什么进行单元测试!这也许回答了我自己的问题,因为你可能会争辩说,除了AutoMapper的工作之外,没有什么真正需要测试的,我认为我无论如何不应该进行单元测试,因为它是其他人的工作,对吗

编辑: 谢谢你的回复。我使用了类似的方法,它只测试UpdateInstance方法是否被调用一次:

[TestMethod]
public void GivenViewModelWhenEditingAUserThenTheUpdateInstanceDomainServiceMethodIsCalledOnce()
{
    // Arrange
    _userAccounts.Clear();
    var viewModel = new Mock<UserAccountViewModel>();

    // Act
    _userAccountAppService.Update(viewModel.Object);

    // Assert
    _userAccountService.Verify(e => e.UpdateInstance(It.IsAny<UserAccount>()), Times.Once());
}
[TestMethod]
public void在编辑用户时提供查看模型,然后更新安装域服务方法调用()
{
//安排
_userAccounts.Clear();
var viewModel=new Mock();
//表演
_userAccountAppService.Update(viewModel.Object);
//断言
_验证(e=>e.UpdateInstance(It.IsAny()),Times.Once());
}

这并不是要确保每个类中的每个公共方法都有一个围绕它的测试。更重要的是确保涵盖所有行为

“什么是单元测试”是一个非常主观的问题。答案从“什么都没有;这是浪费时间”到“总是100%的代码覆盖率”。我倾向于实用的单元测试。在这种情况下,
Update
方法本身做得太少了,依我看,它不值得进行单元测试。您只需测试AutoMapper,它应该已经由其创建者进行了测试


单元测试real user account service的
UpdateInstance
方法很可能是有价值的,不过。

这绝对是可以进行单元测试的,您可以模拟userAccountService并检查是否调用了UpdateInstance,以及字段是否准确