У меня есть несколько тестов, которые все устраивают некоторые TestFixtures, и я обнаружил, что я дублирую этот код расположения на lot . Первые несколько строк каждого теста почти идентичны.
Есть ли способ объявить один общий TestFixture во всех тестах, все еще «сбрасывая» их между каждым тестом, сохраняя независимость теста?
public class MyClassTests
{
private readonly Mock<ICoolService> _mockCoolService;
private readonly Mock<IGreatService> _mockGreatService;
private readonly Mock<INiceService> _mockNiceService;
private readonly MyClass _controller;
public MyClassTests(){
//initialize the services.
_controller = new MyClass(_mockCoolService.Object, _mockGreatService.Object, _mockNiceService.Object);
}
[Fact]
public async Task MyTest_ShouldDoThis(){
var batchName = TestFixture.Create<string>();
var documentName = TestFixture.Create<string>();
var controlId = TestFixture.Create<int>();
_mockCoolService.Setup(x=>x.ACoolMethod(batchName, documentName)).Returns(batchName)
var result = _controller.DoThis()
//VerifyAll
}
[Fact]
public async Task MyTest_ShouldDoThat(){
var batchName = TestFixture.Create<string>();
var documentName = TestFixture.Create<string>();
var controlId = TestFixture.Create<int>();
_mockGreatService.Setup(x=>x.AGreatMethod(batchName, documentName)).Returns(batchName)
var result = _controller.DoThat()
//VerifyAll
}
[Fact]
public async Task MyTest_ShouldDoAnotherThing(){
var batchName = TestFixture.Create<string>();
var documentName = TestFixture.Create<string>();
var controlId = TestFixture.Create<int>();
_mockNiceService.Setup(x=>x.ANiceMethod(batchName, documentName)).Returns(batchName)
var result = _controller.DoAnotherThing()
//VerifyAll
}
}