Размер шрифта
-
+

Как тестируют в Google - стр. 48

reply->set_error_details(error_details_);

}

}


private:


 // Expected request information.

 // Clients set using set_expected_* methods.


 string expected_url_;

 string expected_comment_;

 bool has_request_expectations_;


 // Injected error information.

 // Clients set using set_* methods above.


 int error_code_;

 string error_details_;

};


// The test fixture for AddUrlFrontend. It is code shared by the

// TEST_F test definitions below. For every test using this

// fixture, the fixture will create a FakeAddUrlService, an

// AddUrlFrontend, and inject the FakeAddUrlService into that

// AddUrlFrontend. Tests will have access to both of these

// objects at runtime.

class AddurlFrontendTest : public ::testing::Test {


// Runs before every test method is executed.


 virtual void SetUp() {


// Create a FakeAddUrlService for  injection.


fake_add_url_service_.reset(new FakeAddUrlService);


// Create an AddUrlFrontend and inject our FakeAddUrlService

// into it.


add_url_frontend_.reset(

new AddUrlFrontend(fake_add_url_service_.get()));

}

 scoped_ptr fake_add_url_service_;

 scoped_ptr add_url_frontend_;

};


// Test that AddurlFrontendTest::SetUp works.


TEST_F(AddurlFrontendTest, FixtureTest) {


 // AddurlFrontendTest::SetUp was invoked by this  point.


}


// Test that AddUrlFrontend parses URLs correctly from its

// query parameters.


TEST_F(AddurlFrontendTest, ParsesUrlCorrectly) {

 HTTPRequest http_request;

 HTTPReply http_reply;


 // Configure the request to go to the /addurl resource and

 // to contain a 'url' query parameter.


 http_request.set_text(

"GET /addurl?url=http://www.foo.com HTTP/1.1");


 // Tell the FakeAddUrlService to expect to receive a URL

 // of 'http://www.foo.com'.


 fake_add_url_service_->set_expected_url("http://www.foo.com");


 // Send the request to AddUrlFrontend, which should dispatch

 // a request to the FakeAddUrlService.


 add_url_frontend_->HandleAddUrlFrontendRequest(

&http_request, &http_reply);


 // Validate the response.


 EXPECT_STREQ("200 OK", http_reply.text());

}


// Test that AddUrlFrontend parses comments correctly from its

// query parameters.


TEST_F(AddurlFrontendTest, ParsesCommentCorrectly) {

 HTTPRequest http_request;

 HTTPReply http_reply;


 // Configure the request to go to the /addurl resource and

 // to contain a 'url' query parameter and to also contain

// a 'comment' query parameter that contains the

 // url-encoded query string 'Test comment'.


 http_request.set_text("GET /addurl?url=http://www.foo.com"

"&comment=Test+comment HTTP/1.1");


 // Tell the FakeAddUrlService to expect to receive a URL

Страница 48