This file has multiple tests for the single test cases. Break the existing tests
ID: 3716720 • Letter: T
Question
This file has multiple tests for the single test cases.
Break the existing tests into separate test instances
package com.hundredwordsgof.observer;
import static org.junit.jupiter.api.Assertions.*;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
public class ObserverTest {
@Test
public void testObserver() throws CloneNotSupportedException {
ConcreteSubject subject = new ConcreteSubject();
Observer observer = new ConcreteObserver(subject);
subject.attach(observer);
subject.setState(1);
assertEquals(1, ((ConcreteObserver) observer).getObserverState());
subject.dettach(observer);
subject.setState(0);
assertEquals(1, ((ConcreteObserver) observer).getObserverState());
}
}
Explanation / Answer
Hi
According to my understanding, your question says that the test method tests multiple cases in same instance but you need different instances.
So, this should be the approach, let me know in case of any concern.
package com.hundredwordsgof.observer;
import static org.junit.jupiter.api.Assertions.*;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
public class ObserverTest {
@Test
public void testObserver() throws CloneNotSupportedException {
ConcreteSubject subject = new ConcreteSubject();
Observer observer = new ConcreteObserver(subject);
subject.attach(observer);
subject.setState(1);
assertEquals(1, ((ConcreteObserver) observer).getObserverState());
}
@Test
public void testObserver2() throws CloneNotSupportedException {
ConcreteSubject subject = new ConcreteSubject();
Observer observer = new ConcreteObserver(subject);
subject.attach(observer);
subject.dettach(observer);
subject.setState(0);
assertEquals(1, ((ConcreteObserver) observer).getObserverState());
}
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.