0

我是 JUnit 的新手。我尝试编写一个简单的服务类“ProductService”的单元测试。这是我的“ProductService”测试代码

public interface TestProductService {

    void shouldCreateProduct() throws EntityIsAlreadyCreatedException;
    void shouldDeleteProductById() throws EntityNotfoundException;
    void shouldUpdateProduct();
    void shouldFindProductById() throws EntityNotfoundException;
    void shouldFindAllProducts() throws EntityNotfoundException;
    void shouldThrowErrorWhenFindAllProductsWhichAreNotInDB();
    void shouldThrowErrorWhenFindProductWhichAreNotInDB() throws EntityNotfoundException;
    void shouldThrowErrorWhenDeleteProductWhichIsNotInDB() throws EntityNotfoundException;
    void shouldThrowErrorWhenCreateProductWhichIsAlreadyInDB() throws EntityIsAlreadyCreatedException;

 
}

如您所见,有些函数可能会引发错误。此外,其他功能测试简单的“CRUD”操作。我应该将可能向另一个接口抛出错误的函数分开吗?如果我将它们分开,我可以提供接口隔离吗?谢谢你的帮助。

4

1 回答 1

1

接口隔离应该基于功能来完成。如果您将其视为原则“不应强迫实现接口的客户端依赖于他们不使用的接口”。这意味着最好为每个功能提供单独的接口,而不是推动客户端实现不相关的功能。但是在你的情况下,我很好奇你为什么会有一个用于测试的接口,它会给你带来什么好处......即使你这样做,它也不必是一个用于错误抛出场景的单独接口。相当好的测试设计是对您正在为其创建测试的类实现进行一对一的映射

ProductService >> TestProductService or ProductServiceTest 
于 2020-10-29T14:18:29.643 回答