মকিতো পরীক্ষা একটি শূন্য পদ্ধতি একটি ব্যতিক্রম ছোঁড়ে


399

আমার কাছে voidরিটার্ন টাইপের একটি পদ্ধতি রয়েছে । এটি বেশ কয়েকটি ব্যতিক্রম ছুঁড়ে ফেলতে পারে তাই আমি এই ব্যতিক্রমগুলি ছুঁড়ে ফেলা হচ্ছে তা পরীক্ষা করতে চাই। সমস্ত প্রচেষ্টা একই কারণে ব্যর্থ হয়েছে:

স্টুবার টাইপের (টি) যখন আর্গুমেন্টের জন্য প্রযোজ্য নয় তখন পদ্ধতিটি (অকার্যকর)

কোনও ধারণা কীভাবে আমি একটি নির্দিষ্ট ব্যতিক্রম ছুঁড়ে দেওয়ার পদ্ধতিটি পেতে পারি?

doThrow(new Exception()).when(mockedObject.methodReturningVoid(...));

উত্তর:


706

প্রথম বন্ধনী খারাপভাবে স্থাপন করা হয়েছে। আপনার অবশ্যই ব্যবহার করা উচিত

doThrow(new Exception()).when(mockedObject).methodReturningVoid(...);
                                          ^

এবং না

doThrow(new Exception()).when(mockedObject.methodReturningVoid(...));
                                                                   ^

এটি ডকুমেন্টেশনে ব্যাখ্যা করা হয়েছে


7
@edwardmlyte এই Mockito অসঙ্গতি একটা কারণ আমি করেছি সুইচ MoxieMocks
Muel

@ ক্ল্যামেন্ট উভয়ই ব্যবহার করা যেতে পারে: ডকস.মকিতো . googlecode.com/hg/latest/org/mockito/… । একটি ব্যতিক্রম তৈরি করা এটি ছুঁড়ে না।
জেবি নিজত

1
@ জেবি নিজেট আমি সম্পূর্ণরূপে আপনার সাথে একমত, তবে আমি যদি ডট্রো (এক্সেপশন.ক্লাস) এর পরিবর্তে ডট্রো (নতুন এক্সেপশন ()) লিখি তবে আমি আমার পরীক্ষাটি চালু করার সময় আমার নিম্নলিখিত ত্রুটি রয়েছে; প্রত্যাশিত ব্যতিক্রম com.company.project.exception.ElementNotFoundException কিন্তু পেয়েছিলাম org.mockito.exceptions.base.MockitoException:
ক্লেমেন্ট

2
পরীক্ষার অধীনে থাকা কোড, পরীক্ষার কোড এবং ব্যতিক্রমের সম্পূর্ণ স্ট্যাক ট্রেস সহ আরও একটি প্রশ্ন জিজ্ঞাসা করুন।
জেবি নিজত

6
ডো থ্রো (নতুন এক্সেপশন ())। কখন (অবজেক্ট) .ভয়েডমেথোদ (যে কোনও ());
সৌম্যজিৎ সোয়েন

14

আপনি যদি কখনও ভেবে দেখে থাকেন কীভাবে এটি মকিতোর নতুন বিডিডি স্টাইলটি ব্যবহার করে করবেন:

willThrow(new Exception()).given(mockedObject).methodReturningVoid(...));

এবং ভবিষ্যতের রেফারেন্সের জন্য একজনকে ব্যতিক্রম ছোঁড়াতে হবে এবং তারপরে কিছুই করতে হবে না:

willThrow(new Exception()).willNothing().given(mockedObject).methodReturningVoid(...));

1
এখানে এটি পোস্ট করার জন্য ধন্যবাদ; যদি পদ্ধতিটি একটি মান ফেরত দেয়: প্রদত্ত (মকডওবজেক্ট.মোথার রিটার্নিংঅনবজেক্ট ())। উইলথ্র (নতুন ব্যতিক্রম ()); যদি পদ্ধতিটি কিছু না ফেরায়: উইলথ্রো (নতুন এক্সেপশন ()) দেওয়া হয়েছে (মকডওবজেক্ট)। ব্যাখ্যার ফর্ম জাভাদোক: "স্টব্বিং ভয়েডসকে {@ লিঙ্ক মকিতো # থেকে (অবজেক্ট)} (বা বিডিডিমকিতো আইভিএন) থেকে আলাদা পদ্ধতির প্রয়োজন কারণ সংকলকটি বন্ধনীগুলির ভিতরে
শূন্য
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.