응용 프로그램의 flex sdk를 4.10으로 업그레이드 한 이후 mockolate를 사용하는 단위 테스트를 실행하는 동안 오류 확인으로 실행했습니다.Mockolate 확인 오류 : Flex SDK 4.10 업데이트 이후의 잘못된 무시 override ..
ByteArray
이 메서드 시그니처에 사용 된 인터페이스를 조롱 할 때 발생하는 것처럼 보입니다.
예 인터페이스 :
public interface IFileSystemHelper {
function loadFileContents(path:String):ByteArray;
}
예 테스트 클래스 : 컴파일하고 다음과 같은 오류가 발생합니다 flexmojos 6.0.1 테스트 실행하는 경우
public class SomeTest {
[Rule]
public var mockolateRule:MockolateRule = new MockolateRule();
[Mock]
public var fileHelper:IFileSystemHelper;
public function SomeTest() {
}
[Test]
public function testMethod():void {
// ...
}
}
:
VerifyError: Error #1053: Illegal override of IFileSystemHelper8F2B5D281827800A824B85B588C6F2A08AE814ED in mockolate.generated.IFileSystemHelper8F2B5D281827800A824B85B588C6F2A08AE814ED
내 초기의 의심은 playerglobal (또는 우리의 경우에는 airglobal)의 sdk 버전 문제였습니다. 그래서 나는 mo를 다시 컴파일했습니다. 어떤 결과도없이 sdk 4.10으로 ckolate (및 flexunit)를 실행하십시오.
작동하는 것 같다 유일한 것은 메소드 서명에서의 ByteArray 유형을 제거하는 것입니다 ...하지만 정말 옵션 :-) 아니다 (이 전에 문제가되지 않았어요)
사람이 있는가 누가 비슷한 문제가 있었습니까?
감사
그래서 IFileSystemHelper 인터페이스가 있고 mockolate가 모의 객체를 구현하는 클래스를 생성하고 있다고 생각합니다. 실제로 생성 된 코드를 어딘가에서 볼 수 있습니까? 다른 게시물 http://stackoverflow.com/questions/4450302/mockolate-suddenly-getting-verifyerror-illegal-override 결국 귀하의 문제는 IFileSystemHelper의 서명을 변경했지만 생성 된 모의 코드가 업데이트되지 않았 음을 판단하는 것입니다. ? 따라서 서명이 일치하지 않기 때문에 오래된 생성 클래스는 불법 오버라이드를 수행 할 수 있습니까? –
해당 메소드의 서명은 변경되지 않았으며 테스트도 수행되지 않았습니다. 비록 내가 생성 된 코드를 보지 못했지만, 나는 포인터를 가져야한다. :-) – Bert
생성 된 소스 및 서명을 볼 수있는 이상한 점은 없습니다. – Bert