由於我們將我們的應用程序中的flex sdk升級到4.10,因此我們在運行使用mockolate的單元測試時運行了驗證錯誤。Mockolate驗證錯誤:非法覆蓋..在Flex SDK 4.10更新後
它們似乎在模擬方法簽名中使用ByteArray
的界面時發生。
實施例接口:
public interface IFileSystemHelper {
function loadFileContents(path:String):ByteArray;
}
實施例的測試類:
public class SomeTest {
[Rule]
public var mockolateRule:MockolateRule = new MockolateRule();
[Mock]
public var fileHelper:IFileSystemHelper;
public function SomeTest() {
}
[Test]
public function testMethod():void {
// ...
}
}
當編譯和運行與的Flexmojos 6.0.1測試以下錯誤被拋出:
VerifyError: Error #1053: Illegal override of IFileSystemHelper8F2B5D281827800A824B85B588C6F2A08AE814ED in mockolate.generated.IFileSystemHelper8F2B5D281827800A824B85B588C6F2A08AE814ED
我最初的懷疑是playerglobal(或我們的例子中的airglobal)的sdk版本問題,所以我重新編譯了mo ckolate(和flexunit)與sdk 4.10,沒有任何結果。
,似乎工作的唯一一件事就是刪除方法簽名的ByteArray類型......但是這不是一個真正的選擇:-)(這以前從來沒有一個問題)
是否有任何人誰有類似的問題?
感謝
所以我想你有一個接口IFileSystemHelper和mockolate正在生成一個類來「實現」模擬。你真的能看到生成的代碼嗎?從這個其他帖子http://stackoverflow.com/questions/4450302/mockolate-suddenly-getting-verifyerror-illegal-override最終你的問題是,你改變了IFileSystemHelper的簽名,但生成的模擬代碼尚未更新?因此,舊的生成的類會執行非法覆蓋,因爲簽名不匹配? –
該方法的簽名沒有改變,也沒有測試。 雖然我沒有看過生成的代碼,但我會先給它一個指示,thx指針! :-) – Bert
沒有什麼奇怪的在生成的來源和簽名上看到恐怕 – Bert