2017-11-29 4 views
-1

私はユニットテストで初心者です。私はテストのためのクラスを持っており、価値は示されていません。私は根本的な原因を知らない。価値取引時間は表示されません。私はこのコードを理解していません。たぶんあなたはなぜ値が表示されないのか説明してくれます。コード:ユニットテストの値が見つかりません

クラス試験:

@Test 
public void Testing2() throws Exception { 
    RequestEmailTO requestEmailTo = new RequestEmailTO(); 
    Date transDate = DateUtil.now(); 
    Map<String, String> maps = new HashMap<String, String>(); 
    requestEmailTo.setTransactionTime(DateUtil.formatDateToStr(transDate, "yyyy-MM-dd hh:mm:ss.SSS")); 

    List<NameValuePair> result = SendEmailRequestGenerator.generateRequest(maps); 
    System.out.println(result); 
} 

RequestEmailTO:

public class RequestEmailTO extends RequestBaseFormParamTO{ 

    @FormParam("processCode") 
    private String processCode; 
    @FormParam("tos") 
    private String to; 
    @FormParam("ccs") 
    private String cc; 
    @FormParam("bccs") 
    private String bcc; 
    @FormParam("subject") 
    private String subject; 
    @FormParam("message") 
    private String message; 
    @FormParam("chdrNum") 
    private String chdrNum; 
    @FormParam("policyHolder") 
    private String policyHolder; 
    @FormParam("agentType") 
    private String agentType; 
    @FormParam("agentName") 
    private String agentName; 
    @FormParam("emailAgent") 
    private String emailAgent; 
    @FormParam("replyTo") 
    private String replyTo; 
    // setter and getter 
    } 

RequestBaseFormParamTO:

public class RequestBaseFormParamTO extends BaseFormParamTO { 
    @FormParam("channelId") 
    private String channelId; 
    @FormParam("signatureString") 
    private String signatureString; 
    // setter and getter 
} 

SendEmailRequestGenerator:

public class SendEmailRequestGenerator { 
public static List<NameValuePair> generateRequest(Map<String, String> maps){ 

     List<NameValuePair> parameters = new ArrayList<NameValuePair>(); 
     parameters.add(new BasicNameValuePair( 
       ApplicationConstanta.EmailConstanta.TO, maps.get(ApplicationConstanta.EmailConstanta.TO))); 
     parameters.add(new BasicNameValuePair(
       ApplicationConstanta.EmailConstanta.SUBJECT, maps.get(ApplicationConstanta.EmailConstanta.SUBJECT))); 
     parameters.add(new BasicNameValuePair(
       ApplicationConstanta.EmailConstanta.CC, maps.get(ApplicationConstanta.EmailConstanta.CC))); 
     parameters.add(new BasicNameValuePair(
       ApplicationConstanta.EmailConstanta.BCC, maps.get(ApplicationConstanta.EmailConstanta.BCC))); 
     parameters.add(new BasicNameValuePair(
       ApplicationConstanta.EmailConstanta.MESSAGE, maps.get(ApplicationConstanta.EmailConstanta.MESSAGE))); 
     parameters.add(new BasicNameValuePair(
       ApplicationConstanta.EmailConstanta.TRANSACTION_ID, maps.get(ApplicationConstanta.EmailConstanta.TRANSACTION_ID))); 
     parameters.add(new BasicNameValuePair(
       ApplicationConstanta.EmailConstanta.TRANSACTION_TIME, maps.get(ApplicationConstanta.EmailConstanta.TRANSACTION_TIME))); 
     parameters.add(new BasicNameValuePair(
       ApplicationConstanta.EmailConstanta.CHANNEL_ID, maps.get(ApplicationConstanta.EmailConstanta.CHANNEL_ID))); 
     parameters.add(new BasicNameValuePair(
       ApplicationConstanta.EmailConstanta.SIGNATURE_STRING, maps.get(ApplicationConstanta.EmailConstanta.SIGNATURE_STRING))); 
     parameters.add(new BasicNameValuePair(
       ApplicationConstanta.EmailConstanta.PROCESS_CODE, maps.get(ApplicationConstanta.EmailConstanta.PROCESS_CODE))); 
     parameters.add(new BasicNameValuePair(
       ApplicationConstanta.EmailConstanta.REPLY_TO, maps.get(ApplicationConstanta.EmailConstanta.REPLY_TO))); 

     return parameters; 
    } 
} 

結果:、あなたがrequestEmailToフィールドをあなたのテストで [TOS、件名、CCS、BCCが、メッセージ、のtransactionId、transactionTime、channelId、signatureString、processCode、のreplyTo]

+1

を計算する前に

maps.put(ApplicationConstanta.EmailConstanta.TRANSACTION_TIME, DateUtil.formatDateToStr(transDate, "yyyy-MM-dd hh:mm:ss.SSS")) 

を呼び出すことであろうが、それは私には思われるその' toString'メソッドのみ印刷'name'ではなく' value'です。 'BasicNameValuePair'(またはそのスーパークラスの1つ)の' toString'を見て、何が起こっているのかを見てください。もしあなたがそれを解決できなければ、ここに投稿してください。 –

+0

BasicNameValuePairクラスはorg.apache.http.message.BasicNameValuePairからインポートされました。値は "maps.get"で設定されていると思います。名前のために左側に、値の右側に。それは本当ですか?私はexplainationが必要です。ありがとう –

+0

私の答えによると、あなたのテストコードは妥当な何もしていません。非常に簡単なデバッグでは、空のマップをジェネレータに渡して空のリストを表示します。 – tkruse

答えて

0

設定:

requestEmailTo.setTransactionTime(DateUtil.formatDateToStr(transDate, "yyyy-MM-dd hh:mm:ss.SSS")); 

しかし、空のマップをジェネレータに渡します。

result = SendEmailRequestGenerator.generateRequest(maps); 

これは、結果にトランザクション時間が設定されていない理由です。いくつかの出力を得るために 一つの方法は、私はあなた `BasicNameValuePair`クラスが何であるかを知らない結果

関連する問題