클래스를 상속하면 클래스를 테스트하는 것이 더 쉽다는 것을 발견했습니다. 이 seudo의 예를 고려해Unittest가 Dispose를 사용하여 대상 (SUT)에서 상속
public class Bizz
{
public void Do()
{
var obj = ExtenOutOfTest();
someList.Add(obj);
}
protected List<ISomeObejct> someList = new ISomeObejct<ISomeObejct>();
protected virtual ISomeObejct ExtenOutOfTest()
{
//return real obejct
}
}
및 테스트는 다음과 같이 보일 것이다 :
이[TestClass]
public class BizzTest : Bizz
{
private ISomeObejct _fakedObj;
protected override ISomeObejct ExtenOutOfTest()
{
return _fakedObj;
}
[TestMethod]
public void Test_Do_Add()
{
_fakedObj = new Fake<ISomeObejct>().FakedObject;
Assert.IsFalse(someList.Any());
base.Do(); //<-- target
Assert.IsTrue(someList.Any());
}
}
지금은 내 테스트, 및 내 BIZZ 객체가 dosn't를 분리하는 기능이 다른 노출 방법을 제외하고는 가정했다.
나쁜 연습을 unittesting이 방법입니까? 단위 테스트 어댑터가 예외를 던졌다 : 그것은 심지어 실패한 저를 표시하기 전에 시작되지 않습니다
~Bizz(){Dispose(false);}
public void Dispose()
{
Dispose(true);
}
private void Dispose(bool disposing)
{
if(!disposing) return;
//do cleanup resources
}
: 나는 더 이상 내 테스트를 실행할 수는 IDisposable을 구현하기 위해 내 Bizz
클래스를 수정
Dispose
가상으로 만든 다음 테스트 클래스에서 재정의하려고 시도했지만 작동하지 않았습니다.
도움을 주시면 감사하겠습니다.
설명해 주셔서 감사합니다. –