Mocking przy użyciu Moq in c #

Mam następujący kod:

public interface IProductDataAccess
{
    bool CreateProduct(Product newProduct);
}

KlasaProductDataAccess implementuje ten interfejs.

public class ProductBusiness
{
    public bool CreateProduct(Product newProduct)
    {
        IProductDataAccess pda = new ProductDataAccess();
        bool result = pda.CreateProduct(newProduct);
        return result;
    }
}

W tym przypadku, jak utworzyć test jednostkowy dlaCreateProductetoda @, wyśmiewającIProductDataAccessnterfejs @ Myślałem o publicznym wystąpieniuIProductDataAccess w ciąguProductBusiness i zainicjuj go za pomocąMock<IProductDataAccess> obiekt, ale ujawnianie dostępu do danych w warstwie interfejsu użytkownika nie jest dobrą praktyką. Czy ktoś może mi pomóc

questionAnswers(4)

yourAnswerToTheQuestion