2012-06-06 1 views
1

나는 사용자가 상호 작용하는 스프레드 시트의 이벤트 처리기로 구현되는 복잡한 동작이 대부분인 C# 프로젝트를 가지고 있습니다.복잡한 스프레드 시트 동작을 어떻게 테스트 할 수 있습니까?

코드 테스트에 익숙하지만 스프레드 시트의 복잡한 동작 (행 추가 및 제거 또는 사용자가 셀 값 변경시 타사 구성 요소 호출과 같은 방법)을 테스트하는 방법을 잘 모르겠습니다. 코딩 된 비헤이비어는 스프레드 시트 비헤이비어와 얽혀있을뿐만 아니라 값을 프로그래밍 방식으로 변경하면 스프레드 시트 이벤트가 실행되지 않습니다. 나는 다른 수업으로 실제로 깨진 것이 아니기 때문에 무엇을 조롱할지 모릅니다.

Selenium for WinForms 또는 이와 다른 방법이 있습니까?

+0

잘 모르겠지만 도움이 될 수도 있습니다. http://stackoverflow.com/questions/10397392/how-to-interact-with-the-windows-applications-with-gui –

+0

먼저 리팩터링해야합니다. 테스트 할 수 있도록 코드. 그것이 "수업에 정말로 부숴지지 않으면", 그것은 잘 작성되지 않았습니다. –

+0

필자는 작업이 필요하다는 것에 동의하며, 내가 갈 때 클래스로 리팩토링했지만보다 복잡한 자동화 된 테스트를 사용하지 않으면 더 복잡한 동작을 추출하는 것이 어렵고 위험합니다. –

답변

0

누군가 다른 사람이이 문제를 겪는 경우, 나는 당신이 어떻게 보느냐에 따라 기본적으로 Adapter Pattern 또는 Mediator Pattern 인 무언가를 사용하게되었습니다. 각 스프레드 시트는 스프레드 시트를 형식화하고 코드와 통신하는 어댑터로 포장됩니다. 코드는 중재자에게 일부 도메인 객체를 표시하도록 지시하고 해당 객체를 적절한 셀에 채우고 적절한 이벤트 (CellEndEdit 등)를 트리거합니다. 사용자가 스프레드 시트를 수정 한 후 조정자는 결과 도메인 객체를 코드에 제공합니다. 유닛 테스트는 도메인 객체를 올바르게 읽고 쓸 수 있으며 코드가 동작 할 때 올바른 이벤트를 트리거 할 수 있는지 확인합니다. 다른 테스트에서는 사용자가 올바른 셀에 올바른 데이터를 넣으면 결과 도메인 객체에 올바른 데이터가 있는지 확인합니다. 추가 작업이지만 스프레드 시트 대신 조정자에 의존하는 행동을 가능하게 할 수 있습니다.