de-vraag
  • 質問
  • タグ
  • ユーザー
通知:
報酬:
登録
登録すると、質問に対する返答やコメントが通知されます。
ログイン
すでにアカウントをお持ちの方は、ログインして新しい通知を確認してください。
追加された質問、回答、コメントには報酬があります。
さらに
ソース
編集
 Valamas
Valamas
質問

どのようにwcfからビジネス例外を取得するには?

WCF呼び出しから返されたこの例外をどのようにテストできますか?

私はこのエラークラスを持っています。

[Serializable]
public class PermissionDenied_Error : Exception
{
    public PermissionDenied_Error() : base("You are not approved.") { }
}

私のサービスでは、私はそれを投げています。

if (notApproved)
{
    throw new FaultException(new PermissionDenied_Error()
              , new FaultReason("Permissions Denied!"));
}

私のテストでは、私はそれを期待しています。

[Test]
[ExpectedException(typeof(FaultException))]

現在の結果は次のとおりです。

Expected: System.ServiceModel.FaultException`1[[PermissionDenied_Error
    , Project.API, Version=1.0.4318.24332, Culture=neutral, PublicKeyToken=null]]
 but was: System.ServiceModel.FaultException : Permissions Denied!
2 2011-10-28T02:37:11+00:00 3
プログラミング
wcf
unit-testing
c#
testing
John Saunders
28日 10月 2011 в 3:18
2011-10-28T03:18:51+00:00
さらに
ソース
編集
#56794303

あなたの PermissionDenied_Error はデータ契約でなければなりません。それは例外から派生すべきではありません。

また、 FaultContractAttribute をオペレーションコントラクトに配置して、クライアントが例外を予期することがわかっている必要があります。

バラマスによって追加された

public interface IAccess
{
        [OperationContract]
        [FaultContract(typeof(PermissionDenied_Error))]
        DtoResponse Access(DtoRequest request);
}
3
0
Davide Piras
28日 10月 2011 в 2:55
2011-10-28T02:55:03+00:00
さらに
ソース
編集
#56794302

WCFでは単純にそのようには機能しません。

there are articles around explaining how to setup and use FaultExceptions

check this step by step here: Exception Handling in Windows Communication Framework and Best Practices

2
0
lontivero
28日 10月 2011 в 3:38
2011-10-28T03:38:39+00:00
さらに
ソース
編集
#56794304

ExpectedException属性の使用は悪い習慣です。これを使用する代わりに:

[Test]
[ExpectedException(typeof(FaultException))]

試してみてください:

[Test]
public void Test1()
{
    .....
    try{
       WfcServiceCall(...);
       Assert.Fail("a FaultException was expected!");
    }catch(FaultException){
       Assert.Sucess();
    }catch(Exception e){
       Assert.Fail("Unexpected exception!")
    }
}
1
0
質問の追加
カテゴリ
すべて
技術情報
文化・レクリエーション
生活・芸術
科学
プロフェッショナル
事業内容
ユーザー
すべて
新しい
人気
1
Roxana Elizabeth CASTILLO Avalos
登録済み 1週間前
2
Hideo Nakagawa
登録済み 1週間前
3
Sergiy Tytarenko
登録済み 1週間前
4
shoxrux azadov
登録済み 1週間前
5
Koreets Koreytsev
登録済み 2週間前
© de-vraag :年
ソース
stackoverflow.com
ライセンス cc by-sa 3.0 帰属