È entrato in un nuovo datore di lavoro e ha trovato un nuovo stile di test di scrittura.
@Test()
public testMethodWhichDoesNotDoAnyAssertion() {
LoginPage loginPage = signUpPage.doLogin("username","password");
oneMoreCommonMethodCalledHere()
anotherCommonMethodCalledHere()
}
public void doLogin(String userName, String password) {
//login here
Assert.assertTrue("Login Successful")
}
public void oneMoreCommonMethodCalledHere() {
//Some more operations here.
Assert.assertTrue("This also succeeded")
}
public void anotherCommonMethodCalledHere() {
//Some more operations here.
Assert.assertTrue("Even this succeeded!!! Your code is awesome!!!")
Finora ho fatto asserzioni nei test e non nei metodi da cui sono invocati metodo di prova. I problemi che ho con l'approccio sono multipli -
Ci sono due molte asserzioni che accadono in un metodo, sebbene indirettamente e così sconfigge l'idea di una responsabilità per test
Ci sono momenti in cui voglio fare una affermazione nel mio metodo di test durante il test per un flusso di lavoro. E molti dei metodi di supporto che verrebbero chiamati asserirebbero le cose e potrebbero anche fallire quali ostacolerebbe il test del flusso di lavoro.
Ora cosa ho sentito a favore di questo approccio - È facile per chiunque semplicemente inserire il metodo di supporto in un test senza preoccuparsi le asserzioni che dovrebbero essere eseguite per uno scenario, come metodo di supporto si prende cura di esso.
Commenti?