그래서 단위 테스트, 특히 웹 서비스 (SOAP 버전)로 다이빙을 시도하고 참조 된 중첩 클래스를 전달하기위한 적절한 형식을 얻는 데 엄청난 어려움을 겪고 있습니다. OtherClass.aNestedClass.단위 테스트 메서드에서 매개 변수로 중첩 클래스 전달 매개 변수로
아래에서 알 수 있듯이 OtherClass 및 aNestedClass 클래스는 모두 공개입니다. readDB 메소드는 단위 테스트의 대상 메소드입니다. 그러나 OtherClass의 인스턴스를 선언하려고 시도 할 때 ReadDB 메서드 호출을 너무 행복하게 만드는 OtherClass_Accessor 옵션 만 가져옵니다 (특히 '가장 좋은 오버로드 된 일치 ... 일부 잘못된 인수가 있음'오류가 발생 함) .
단위 테스트의 접근 자 메서드 호출에 대한 매개 변수로 클래스를 올바르게 전달하는 방법은 무엇입니까?
public class MyClass
{
public void readDB(ref OtherClass.aNestedClass oa)
{
oa.A = "abc";
oa.B = "def";
}
}
public class OtherClass
{
public class aNestedClass
{
public string A;
public string B;
}
}
내 샘플 시도 : readDB()
에서
[TestMethod()]
[HostType("ASP.NET")]
[AspNetDevelopmentServerHost("D:\\MyProject", "/MyProject")]
[UrlToTest("http://localhost/MyProject/default.aspx")]
public void readDBTest()
{
OtherClass_Accessor.aNestedClass oa = new OtherClass_Accessor.aNestedClass();
readDB(ref oa);
// assert statements...
}
나는 이것이 너무 많이 희망한다고 생각하지만 실제로는 중첩 된 클래스 여야합니까? 중첩 (Nesting)은 클래스 밖에서 사용할 수 없기 때문에 클래스 밖에서 사용하지 못하도록합니다. –
불행히도 예, 이러한 웹 서비스의 원래 개발자는 웹 서비스 전체에서 다양한 비트의 데이터를 전달하기 위해 해당 구조를 사용했습니다. 그들은 아주 많이 묻혀 있습니다. –