問題タブ [moq-rt]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - DateTimeOffset 型のプロパティをモックすると、Windows ストア テスト ライブラリで InvalidProgramException が発生する
Windows ストア アプリケーションから始めたばかりで、自分のプロジェクトでテスト駆動開発を使用することにしました。以前に NUnit を使用した経験があり、それが私の選択したライブラリであり、Windows ストア アプリケーションに使用するモッキング ライブラリとして Web サイトで推奨されているモッキング ライブラリである MoqRT を使い始めました。
私が直面している問題はDateTimeOffset
、プロパティの型として a を持つオブジェクトをモックしているときです。次の例外が発生します。
System.InvalidProgramException: 共通言語ランタイム
が Castle.Proxies.ITimeProxy_1.get_Expires() で無効なプログラムを検出しました...明確にするために残りのスタックトレースを削除しました
現在、これはプロパティで型を使用する場合にのみ発生DateTimeOffset
し、たとえば文字列プロパティのモックは完全に正常に機能します。
モックの代わりにそれをサブクラスITime
化して使用すると、すべてがうまくいきます。
これを検索すると、例外の主な問題は「大きすぎるメソッド」に関連しているように見えますが、これはタイプのプロパティに対してのみ発生するためDateTimeOffset
、他のプロパティは失敗するはずなので、テストにどのように影響するかわかりませんそれに関して何かだったら。
もう 1 つのことは、NUnit アプリケーションを使用してテストを実行していることです。これは、Visual Studio 2012 が Windows ストア アプリケーションであるため、テストが実行されないためです (これはまったく別の質問です)。これが動作にも影響するかどうかはわかりません。
私が求めている質問は次のとおりです。DateTimeOffset
例外をスローせずに、型のプロパティを持つインターフェイスをモックする方法はありますか?