我解释得更好,我正在研究如何在 C# 中使用 NUnit 和 justmock 进行单元测试。我正在阅读单元测试的艺术这本书,在这里我被告知,尽可能避免 [SetUp] 为以前的场景配置一试。但是在博客上搜索我,如果在 [SetUp] 中使用这些设置很好,我真的很困惑,我知道如果场景非常大,我的测试方法的安排会增长,我必须 rafactorizar,Entence最好的详细问题是,当使用 [SetUp] 时,或者当要测试的场景非常大并且 Arrange 代码受此影响时是否存在某种类型的模式,helpmee ???
例如:
[TestMethod]
[Owner("Joaquin")]
public void Update_CorrectViewDtoAndAllowedUser_ReturnsTrue()
{
// Arrange
const string userName = "johndoe";
var viewDto = new ViewDto { Id = 1 };
var view = new View { Id = 1 };
var authorizationService = Mock.Create<IAuthorizationService>();
Mock.Arrange(() => authorizationService.GetAccessLevel(viewDto.Id,userName))
.Returns(AccessLevel.ReadWrite);
var mapper = Mock.Create<ITypeMapperService>();
Mock.Arrange(() => mapper.Map<View>(Arg.Is(viewDto)))
.Returns(view);
var viewService = Mock.Create<IViewService>();
Mock.Arrange(() => viewService.GetById(view.Id))
.Returns(view);
var viewAppService = CreateViewAppService(viewService, authorizationService, mapper);
// Act
var result = viewAppService.Update(viewDto, userName);
// Assert
Assert.IsTrue(result);
}
在这里,我的安排非常广泛,我不想将其删除为私有方法或将其传递给 [SetUp] 没有模式可以以另一种方式解决此问题