1

私は次のように宣言されたテストを持っています:

    [Test]
    [ExpectedException(typeof(FaultException<ArgumentException>))]
    public void ShouldNotBeAbleToDeleteASystemList()

.net 3.5をターゲットとするVS2008でこれを実行すると、すべて正常に動作し、例外がスローされるとテストに合格します。

ソリューションをVS2010に移行し、ターゲットフレームワークを4.0に変更しましたが、テストは次の詳細で失敗します。

System.ServiceModel.FaultException`1 [[System.ArgumentException、mscorlib、Version = 4.0.0.0、Culture = neutral、PublicKeyToken=b77a5c561934e089]]が予期されていました

実際のメッセージをコンソールに書き込むと、次のようになります。

System.ServiceModel.FaultException`1 [System.ArgumentException]:これはシステムリストであり、削除できません(障害の詳細はSystem.ArgumentExceptionと同じです:値が期待される範囲内にありません)。

確認したところ、すべてのプロジェクトが.net4.0を対象としています。

何が問題になっていますか?

4

1 に答える 1

1

そのような問題に苦しむかもしれない他の誰かのために。このエラーの理由は、.net 2.0フレームワークに対してコンパイルされたサードパーティコンポーネントによって例外がスローされ、スローされた例外が.net2.0クラスであったためです。私のコードはこれを同じクラスとして解釈していませんでした。解決策は、サードパーティコンポーネントの構成を変更して、セクションに<supportedRuntime ... />行を追加することでした。<startup>

于 2010-07-17T19:29:11.860 に答える