diff options
author | Paul J. Davis <paul.joseph.davis@gmail.com> | 2019-12-19 13:20:22 -0600 |
---|---|---|
committer | Paul J. Davis <paul.joseph.davis@gmail.com> | 2019-12-25 11:45:20 -0600 |
commit | a70445626b0e844e13db99ba924f5b803db9f663 (patch) | |
tree | 4aa1b7a36bd79371fa3aba3017e6e4f114a480ad | |
parent | fa8aae5cbdc2beec4c3dd811488d592d0b9461ed (diff) | |
download | couchdb-a70445626b0e844e13db99ba924f5b803db9f663.tar.gz |
Speedup eunit: chttpd_db_bulk_get_test
Another example of moving mocks to a setup and using `meck:reset/1` in
the foreach fixture.
-rw-r--r-- | src/chttpd/test/eunit/chttpd_db_bulk_get_test.erl | 64 |
1 files changed, 34 insertions, 30 deletions
diff --git a/src/chttpd/test/eunit/chttpd_db_bulk_get_test.erl b/src/chttpd/test/eunit/chttpd_db_bulk_get_test.erl index 864e7079a..1a3411254 100644 --- a/src/chttpd/test/eunit/chttpd_db_bulk_get_test.erl +++ b/src/chttpd/test/eunit/chttpd_db_bulk_get_test.erl @@ -18,45 +18,51 @@ -define(TIMEOUT, 3000). -setup() -> +setup_all() -> mock(config), mock(chttpd), mock(couch_epi), mock(couch_httpd), mock(couch_stats), mock(fabric), - mock(mochireq), - Pid = spawn_accumulator(), - Pid. + mock(mochireq). + + +teardown_all(_) -> + meck:unload(). + + +setup() -> + spawn_accumulator(). teardown(Pid) -> - ok = stop_accumulator(Pid), - meck:unload(config), - meck:unload(chttpd), - meck:unload(couch_epi), - meck:unload(couch_httpd), - meck:unload(couch_stats), - meck:unload(fabric), - meck:unload(mochireq). + ok = stop_accumulator(Pid). bulk_get_test_() -> { "/db/_bulk_get tests", { - foreach, fun setup/0, fun teardown/1, - [ - fun should_require_docs_field/1, - fun should_not_accept_specific_query_params/1, - fun should_return_empty_results_on_no_docs/1, - fun should_get_doc_with_all_revs/1, - fun should_validate_doc_with_bad_id/1, - fun should_validate_doc_with_bad_rev/1, - fun should_validate_missing_doc/1, - fun should_validate_bad_atts_since/1, - fun should_include_attachments_when_atts_since_specified/1 - ] + setup, + fun setup_all/0, + fun teardown_all/1, + { + foreach, + fun setup/0, + fun teardown/1, + [ + fun should_require_docs_field/1, + fun should_not_accept_specific_query_params/1, + fun should_return_empty_results_on_no_docs/1, + fun should_get_doc_with_all_revs/1, + fun should_validate_doc_with_bad_id/1, + fun should_validate_doc_with_bad_rev/1, + fun should_validate_missing_doc/1, + fun should_validate_bad_atts_since/1, + fun should_include_attachments_when_atts_since_specified/1 + ] + } } }. @@ -69,12 +75,10 @@ should_require_docs_field(_) -> should_not_accept_specific_query_params(_) -> Req = fake_request({[{<<"docs">>, []}]}), lists:map(fun (Param) -> - {Param, ?_assertThrow({bad_request, _}, - begin - ok = meck:expect(chttpd, qs, - fun(_) -> [{Param, ""}] end), - chttpd_db:db_req(Req, nil) - end)} + {Param, ?_assertThrow({bad_request, _}, begin + BadReq = Req#httpd{qs = [{Param, ""}]}, + chttpd_db:db_req(BadReq, nil) + end)} end, ["rev", "open_revs", "atts_since", "w", "new_edits"]). |