La façon de traiter avec Setter/Getter-Méthodes de Simulacres?

Donc, je suis toujours avoir des problèmes avec l'utilisation de Mockito. Supposons donc j'ai suivantes de la classe (s'il vous Plaît ignorer la logique, ou de la structure de ça, c'est juste un petit exemple que j'ai créé à partir d'une autre classe, avec des noms différents et ainsi de suite.) :

public class Restaurant(
    @Autowired
    private CustomerService customerService;

    private CustomerInputData updateCustomer(CustomerInputData inputData){
        String customerId = inputData.getID();
        Customer customer = customerService.getCustomerById(customerID);
        if(customer.getAddress() != null){
            inputData.setCustomerName(customer.getCustomerName());
            inputData.setCustomerCity(customer.getCustomerCity);
            inputData.setCustomerLanguage(customer.getLanguage);
        }

        return inputData
    }
}

Donc ma compréhension de l'Unité-Tests, pour isoler toutes les dépendances. Ici, je voudrais demander au Client de la classe et le Service à la Clientèle.

Donc d'écrire un test de la classe, je voudrais le font actuellement les suivantes:

public class RestaurantTest()
{
    @Mock(name="customerService");
    private CustomerService customerService;

    @InjectMocks
    private Restaurant classUnderTest;

    @Before
    public void setUp(){
        MockitoAnnotations.initMocks(this);
    }

    @Test
    public void updateCustomer_WithValidInput_ShouldReturnUpdatedInput(){
        //Some Mocking first
        String customerId = "customerId";
        Customer customer = mock(Customer.class);
        CustomerInputData = mock(CustomerInputData.class);

        doReturn(customer).when(customerService.getCustomerById(any(String.class)));
        doReturn(customerId).when(inputData.getId());

        doReturn("address").when(customer.getAddress());
        doReturn("Name").when(customer.getName());
        doReturn("City").when(customer.getCity());
        doReturn("Language").when(customer.getLanguage());

        doNothing().when(inputData).setCustomerName(any(String.class));
        doNothing().when(inputData).setCustomerCity(any(String.class));
        doNothing().when(inputData).setCustomerLanguage(any(String.class));

        verify(customer.getAddress(), atLeastOnce());
        verify(customer.getName(), atLeastOnce());
        //and so on...

        verify(inputData, atLeastOnce()).setCustomerName(eq("Name"));
        verify(inputData, atLeastOnce()).setCustomerCity(eq("City"));
        verify(inputData, atLeastOnce()).setCustomerLanguage(eq("Language");

    }
}

Donc actuellement je n'ai pas l'Affirmer, je n'ai vérifier si les bonnes méthodes appelées. La raison, pourquoi j'essaie de le faire comme cela, et ne pas laisser le Test de l'appel de classe le setter/getter est à cause de l'isolement. Supposons inputData.setCustomerCity est brisé, mon test échoue. C'est donc en fonction de la CustomerInputData de Classe.

Maintenant, comment puis je m'approche de ces accesseurs et des mutateurs, quelle est la meilleure pratique?

Faire, je n'ai pas compris Mockito assez bon? Lorsque j'utilise la maquette(), puis-je simplement utiliser le setter-méthodes et gethods, et n'ont pas besoin de s'inquiéter à propos de l'utilisation doReturns et ainsi de suite?

Je sais que c'est une whitebox-test, je sais que les méthodes et ce qui se passe.

De ma compréhension, je voudrais tester les getters/setters dans les Épreuves de la classes respectives. Il n'est pas le devoir de RestaurantTest. Si setCustomerName est cassé, le code de Restaurant pourrait encore être correct. Donc, les tests ici peut même induire en erreur votre bughunt ...
C'est tout mon intention. Je ne peux pas tester le Setter/Getter là, j'ai donc besoin de se moquer d'eux, ou de ne rien faire/doReturn quand ils sont appelés. Mais est-ce la bonne façon, ou, comment puis-je tester cette classe? Parce que j'ai maintenant deux problèmes, je ne peux vérifier, si le Restaurant-classe appelle le droit des méthodes et j'ai beaucoup de doReturn/ne rien faire pour écrire..

OriginalL'auteur user5417542 | 2015-10-29