برنامه نویسی

هر روش () در نمونه بوت بهار Mockito

از روش () در Mockito به عنوان یک مسابقه استفاده می شود تا مشخص شود که هر مقدار از یک نوع معین را می توان به یک روش مسخره منتقل کرد.

1⃣ چه موقع از هر () استفاده کنید؟

وقتی به ارزش دقیق استدلال اهمیت نمی دهید و فقط باید تأیید کنید که این روش خوانده شده است.

هنگام برخورد با مقادیر تولید شده پویا ، مانند شناسه های تصادفی تولید شده ، زمان بندی یا ورودی کاربر.

2⃣ مثال بوت بهار با استفاده از هر ()

سناریو:

ما یک کارمند کار داریم که یک کارمند را با استفاده از یک کارمند کار اضافه می کند. به جای بررسی یک شیء خاص کارمند ، ما از هر (کارمند. کلاس) برای تأیید روش استفاده می کنیم.

📌 کارمند. جوا (کلاس مدل)

package com.example.demo.model;

public class Employee {
    private String id;
    private String name;

    public Employee(String id, String name) {
        this.id = id;
        this.name = name;
    }

    public String getId() {
        return id;
    }

    public String getName() {
        return name;
    }
}

حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

📌 askereerepository.java (شبیه سازی تماس های پایگاه داده)

package com.example.demo.repository;

import com.example.demo.model.Employee;
import org.springframework.stereotype.Repository;

@Repository
public class EmployeeRepository {
    public void save(Employee employee) {
        System.out.println("Saving employee: " + employee.getName());
    }
}

حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

📌 costormervice.java (منطق تجارت)

package com.example.demo.service;

import com.example.demo.model.Employee;
import com.example.demo.repository.EmployeeRepository;
import org.springframework.stereotype.Service;

@Service
public class EmployeeService {
    private final EmployeeRepository employeeRepository;

    public EmployeeService(EmployeeRepository employeeRepository) {
        this.employeeRepository = employeeRepository;
    }

    public void addEmployee(Employee employee) {
        employeeRepository.save(employee);
    }
}

حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

3⃣ نوشتن یک آزمون با استفاده از هر ()
✅ سناریو:

ما کارمندان را مسخره می کنیم تا روش ذخیره () آن در واقع اجرا نشود.

ما تأیید می کنیم که Save () خوانده شده است ، اما بدون بررسی شیء دقیق کارمند.

ما برای مطابقت با هر نمونه کارمند از هر (کارمند. کلاس) استفاده می کنیم.

package com.example.demo.service;

import com.example.demo.model.Employee;
import com.example.demo.repository.EmployeeRepository;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.junit.jupiter.MockitoExtension;

import static org.mockito.Mockito.*;

@ExtendWith(MockitoExtension.class)
class EmployeeServiceTest {

    @Mock
    private EmployeeRepository employeeRepository; // Mock repository

    @InjectMocks
    private EmployeeService employeeService; // Inject mocks into service

    @Test
    void testAddEmployee_UsingAnyMatcher() {
        // Arrange
        Employee employee = new Employee("1", "Mock Employee");

        // Stub the void method
        doNothing().when(employeeRepository).save(any(Employee.class));

        // Act
        employeeService.addEmployee(employee);

        // Assert: Verify the save() method was called, but ignore exact argument
        verify(employeeRepository, times(1)).save(any(Employee.class));
    }
}

حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

✅ نتیجه گیری

از هر () استفاده کنید که استدلال دقیق مهم نباشد.
به مسخره کردن مقادیر پویا که قابل پیش بینی نیستند کمک می کند.
برای تأیید تماس های روش با تأیید () ترکیب کنید.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا