Add support for using testserver in doctests. (#218)
Doctests run against a normally-built copy of the crate, i.e. one without #[cfg(test)] set, so we can't use the conditional compilation feature. Instead, define a static var that indicates whether the library is running in test mode or not. For each doctest, insert a hidden call that sets this var to true. Then, when ureq::agent() is called, it returns a test_agent instead. This required moving testserver out of the test mod and into src/, so that it can be included unconditionally (i.e. when cfg(test) is false). This PR converts one doctest as an example. If we land this PR, I'll send a followup to convert the rest.
This commit is contained in:
committed by
GitHub
parent
a0b901f35b
commit
acc36ac370
@@ -103,14 +103,12 @@ impl Request {
|
||||
/// The `Content-Length` header is implicitly set to the length of the serialized value.
|
||||
///
|
||||
/// ```
|
||||
/// #[macro_use]
|
||||
/// extern crate ureq;
|
||||
///
|
||||
/// fn main() {
|
||||
/// let r = ureq::post("/my_page")
|
||||
/// .send_json(json!({ "name": "martin", "rust": true }));
|
||||
/// println!("{:?}", r);
|
||||
/// }
|
||||
/// # fn main() -> Result<(), ureq::Error> {
|
||||
/// # ureq::is_test(true);
|
||||
/// let r = ureq::post("http://example.com/form")
|
||||
/// .send_json(ureq::json!({ "name": "martin", "rust": true }))?;
|
||||
/// # Ok(())
|
||||
/// # }
|
||||
/// ```
|
||||
#[cfg(feature = "json")]
|
||||
pub fn send_json(mut self, data: SerdeValue) -> Result<Response> {
|
||||
|
||||
Reference in New Issue
Block a user