나는 클라이언트 - 서버 시스템을 쓰고있다. 두 가지가 올바르게 상호 작용하는지 테스트하기 위해 오이 테스트를 작성하고 싶습니다.일단 서버가 연결을 수락하면 서버가 차단되므로 클라이언트와 서버를 함께 테스트해야합니까?
하지만 내 서버와 클라이언트를 하나의 테스트에 넣으면 서버가 연결 수락을 시작할 때 서버가 차단되어 테스트가 진행되지 않습니다. 연결을 청취 할 때 서버가 차단되어야하므로 정상입니다.
그런 테스트에 어떻게 접근해야합니까?
내 오이 기능은 다음과 같이이다 : 이것에 대한
Feature: Client Can Connect.
Scenario: Client can connect to server.
Given Server is up and running.
When Client is up and tries to connect to server.
Then Server accepts connection.
내 단계 정의는 다음과 같습니다
public class ClientConnectsServerStepDefinition {
@Given("^server is up and running$")
public void server_is_up_and_running() {
TheServer theServer = new TheServer("localhost", 5776);
theServer.start(); //The whole test would block at here and would not proceed
}
@When("^client is up and tries to connect to server$")
public void client_is_up_and_tries_to_connect() {
TheClient theClient = new TheClient("localhost", 5776);
theClient.start();
}
@Then("^server accepts connection.$")
public void the_server_accepts_connection() {
Assert.assertTrue(theServer.isConnected);
}
}
내가 한 번 별도의 스레드에서 서버와 클라이언트 퍼팅 시도했다. 하지만 두 개의 스레드로 분리되어 있기 때문에 서버 나 클라이언트로부터 어떤 피드백도 얻을 수 없기 때문에이 방법은 도움이되지 않습니다.
테스트를 올바르게 작성합니까? 내 코드를 비평 해주세요. 강한 손을 가져 주셔서 감사합니다.
저에게 데몬이라고하는 것을 상기시켜 주셔서 감사합니다. 나는 그 사실을 거의 잊어 버렸다. 고맙습니다! –
스텝 데프를 쓰는 데 아이디어를 줄 수 있습니까? –