xUnit 및 Watin을 사용하는 테스트 사례가 있습니다. 클래스의 모든 팩트를 IE의 동일한 인스턴스로 공유하려면 싱글 톤 클래스를 만들어서 첫 번째 테스트에서 새 IE 인스턴스가 시작되고 다음 테스트에서는 동일한 인스턴스가 사용됩니다.xUnit 및 Watin 정리
사실이 모두 끝나면 IE 인스턴스는 계속 실행 중입니다. 클래스 완성 테스트를 마친 후 IE를 닫는 방법에 대해 궁금합니다.
xUnit 및 Watin을 사용하는 테스트 사례가 있습니다. 클래스의 모든 팩트를 IE의 동일한 인스턴스로 공유하려면 싱글 톤 클래스를 만들어서 첫 번째 테스트에서 새 IE 인스턴스가 시작되고 다음 테스트에서는 동일한 인스턴스가 사용됩니다.xUnit 및 Watin 정리
사실이 모두 끝나면 IE 인스턴스는 계속 실행 중입니다. 클래스 완성 테스트를 마친 후 IE를 닫는 방법에 대해 궁금합니다.
테스트를위한 클래스는 IUserFixture 인터페이스를 구현해야합니다.
나는 xunit
생명주기 모델을 사용자의 요구를 해결하고 보여줍니다 예제를 제공합니다 :
public class MyTestClass : IUseFixture<WatinFixture>, IDisposable
{
private WatinFixture _data;
public void SetFixture(WatinFixture data)
{
_data = data;
Console.WriteLine("setting data for test");
}
public MyTestClass()
{
Console.WriteLine("in constructor of MyTestClass");
}
[Fact]
public void Fact1()
{
Console.WriteLine("in fact1. IE is '{0}'", _data.ReferenceToIE);
// use _data.ReferenceToIE here
}
[Fact]
public void Fact2()
{
Console.WriteLine("in fact2. IE is '{0}'", _data.ReferenceToIE);
// use _data.ReferenceToIE here
}
public void Dispose()
{
Console.WriteLine("in Dispose of MyTestClass");
}
}
public class WatinFixture : IDisposable
{
public string ReferenceToIE = null;
public WatinFixture()
{
// start IE here
Console.WriteLine("Starting IE ...");
ReferenceToIE = "If you see this string - then browser reference is not empty.";
}
public void Dispose()
{
// close IE here
Console.WriteLine("Closing IE ...");
ReferenceToIE = null;
}
}
출력 :
이 MyTestClass
설정 데이터 생성자에서 IE ...
시작 테스트를 위해
사실 1. IE는 '이 문자열이 표시되면 브라우저 참조가 비어 있지 않습니다.' fact2에 대한 테스트
MyTestClass
설정 데이터의 생성자 MyTestClass
폐기에
. IE는 '이 문자열이 표시되면 브라우저 참조가 비어 있지 않습니다.' MyTestClass IE 닫기
의 폐기에
...
나는 xUnit의의 문서에서 유사한 코드를 읽을 수 있지만 라이프 사이클을 보여주는 당신의 예제처럼 명확하지 않다. 이제는 브라우저의 게으른 인스턴스화를 확인해야하지만 싱글 톤을 구성 할 필요가 없습니다. – ZZZ