সুতরাং আমার কম্পিউটারে নিম্নলিখিত কোডটি টুকরো টুকরো ব্যবহার করে। আমরা বর্তমানে ইউনিট টেস্টগুলি অতীতের প্রতিবিম্বিতভাবে লিখছি (কখনই আমার তর্ক ছিল না তার চেয়ে আরও ভাল দেরি), তবে আমি দেখতে পাচ্ছি না এটি কীভাবে পরীক্ষামূলক হবে?
public function validate($value, Constraint $constraint)
{
$searchEntity = EmailAlertToSearchAdapter::adapt($value);
$queryBuilder = SearcherFactory::getSearchDirector($searchEntity->getKeywords());
$adapter = new SearchEntityToQueryAdapter($queryBuilder, $searchEntity);
$query = $adapter->setupBuilder()->build();
$totalCount = $this->advertType->count($query);
if ($totalCount >= self::MAXIMUM_MATCHING_ADS) {
$this->context->addViolation(
$constraint->message
);
}
}
ধারণামূলকভাবে এটি যে কোনও ভাষার ক্ষেত্রে প্রযোজ্য হওয়া উচিত তবে আমি পিএইচপি ব্যবহার করছি। কোডটি কেবল কোনও Searchবস্তুর উপর ভিত্তি করে একটি ইলাস্টিক অনুসন্ধান ক্যোয়ারী অবজেক্ট তৈরি করে , যা ঘুরিয়ে দিয়ে কোনও EmailAlertঅবজেক্টকে বন্ধ করে দেয় । এগুলি Searchএবং EmailAlertকেবল পপো O
আমার সমস্যা আমি দেখছি না আমি কিভাবে খুঁজে উপহাস করতে পারেন SearcherFactory(যা স্ট্যাটিক পদ্ধতি ব্যবহার করে), আর SearchEntityToQueryAdapter, যা থেকে ফলাফল দরকার SearcherFactory::getSearchDirector এবংSearch উদাহরণস্বরূপ। কোনও পদ্ধতির মধ্যে ফলাফল থেকে তৈরি এমন কীভাবে আমি ইনজেক্ট করব? সম্ভবত কিছু ডিজাইনের ধরণ আছে যা সম্পর্কে আমি অবগত নই?
কোন সাহায্যের জন্য ধন্যবাদ!
::তে স্থির পদ্ধতির জন্য।
::ক্লাসে একটি স্ট্যাটিক পদ্ধতি কল করে।
$this->context->addViolationকলের অভ্যন্তরে, এর অভ্যন্তরে ব্যবহৃত হচ্ছেif।