MVC 프레임 워크를 사용하여 응용 프로그램을 작성합니다.이 프레임 워크는 우리 시스템의 많은 상용구 배선을 처리합니다. 특히 - 응용 프로그램은 Parsley MVC 프레임 워크를 사용하여 Flex로 작성됩니다. 그러나 질문은 특정 언어가 아닙니다. 하는가 응답, 내 시스템의 다른 곳에서, 다음 코드를실용적인 단위 테스트
[Event(name="attemptLogin",type="com.foo.AttemptLoginEvent")]
[ManagedEvents["attemptLogin"]
public class LoginViewPM {
public function attemptLogin(username:String,password:String):void
{
dispatchEvent(new AttemptLoginEvent(username,password));
}
}
: 내 프리젠 테이션 모델 /에서
코드 숨김/(그것을 부르기 위하여 당신이 원한다 무엇 이건) 뷰 - 컨트롤러, 나는 이런 일이있을 수 있습니다 이 모양은 다음과 같습니다.public class LoginCommand {
[MessageHandler]
public function execute(attemptLoginEvent:AttemptLoginEvent):void {
// Do login related stuff
}
}
Flex/Actionscript에서 메타 태그는 컴파일러가 확인하지 않습니다. 예를 들어
[Event(name="attemptLogin",type="com.foo.AttemptLoginEvent")]
[ManagedEvent["attemptLogin"] // Spelling mistake - metatag is ManagedEvents
public class LoginViewPM {
및 상기 두 예에서
[Event(name="attemptLogin",type="com.foo.AttemptLoginEvent")]
[ManagedEvent["attemtLogin"] // Spelling mistake - event name is wrong
public class LoginViewPM {
이 프레임 워크는 실패 할 것이다. 첫 번째 예제에서는 메타 태그가 잘못되어 자동으로 실패하므로 프레임 워크가 절대 참여하지 않습니다. 두 번째 예제에서 우리는 상황이 잘못되었다는 것을 부분적으로 경고하는 런타임 로깅을 얻습니다.
이 점을 감안할 때 MVC 프레임 워크의 임무와 관련하여 PM의 attemptLogin() 메소드에 대한 단위 테스트의 실용적인 수준은 무엇입니까? 즉 :
할까요 I 다음 AttemptLoginEvent는 MVC 프레임 워크 이벤트가 전달 될 때 LoginCommand 프레임 워크에 의해 호출됩니다 것을
- 테스트합니다.
다른 컨테이너/프레임 워크 환경에서는 프레임 워크의 책임을 수행하는 테스트를 작성하지 않으므로 (IMHO) 이로 인해 취성 테스트가 발생합니다. 그러나, 컴파일러 검사의 부족을 감안할 때,이 경우에 그것은 과장되게 보일 수 있습니다.
생각하십니까?