나는 모든 TestFixtures를 정렬하는 많은 테스트를 가지고 있으며 그 정렬 코드를 많이 복제하고 있음을 발견했습니다 . 모든 테스트의 처음 몇 줄은 거의 동일합니다.
모든 테스트에서 하나의 공유 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
}
}
xUnit 문서는 생성자에 다음과 같은 코드를 넣는 것을 제안합니다.
xUnit.net은 실행되는 모든 테스트에 대해 테스트 클래스의 새 인스턴스를 생성하므로 테스트 클래스의 생성자에 배치 된 모든 코드가 모든 단일 테스트에 대해 실행됩니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다