unary function test caseはおそらくあなたが望むものです。唯一の欠点は、自動登録(何らかの種類の工場機能に基づく)がサポートされていないように見えることです。
彼らはまたtest case templateを持っていますが、それは自動的に登録されているので、あまりないものがあればそれぞれの設定のタイプを定義することで乱用することができます。
編集:パラメータは、テストスイート内のすべてに影響するため、これらは非常に、私が欲しいものを達成していない
// Parameter is the type of parameter you need. Might be anything from simple int (in
// which case the template parameter may be a value, not reference) to complex object.
// It just has to be possible to create (static) global instances of it.
template <const Parameter ¶m>
struct Fixture {
// do whatever you want, param is normal object reference here
// it's not a member, but you can:
const Parameter &getParameter() { return param; }
}
static Parameter p1(whatever);
static Parameter p2(something_else);
// ...
typedef boost::mpl::list<Fixture<p1>, Fixture<p2> > Fixtures;
BOOST_AUTO_TEST_CASE_TEMPLATE(test, F, Fixtures)
{
F fixture; // Unfortunately you can't make it true fixture, so you have to have instance
// Test what you want
}
:テストケーステンプレートは、このようなものを使用することができます。私はまだラッパーを書く必要があります。テンプレートテストのドキュメントは非常に少ないですが、動作するかどうかは言えません。 –
まあ、テンプレートは自動登録ができるので、書くべきコードは少なくなりますが、テストケースではテンプレートパラメータを明示的に使用する必要があります(ローカルインスタンスを作成することでフィクスチャを手動で使用するのと同様です)。 –
これは実際には機能するかもしれません。テストケース内のパラメータを使用することは問題ではありません。テスト階層は理想的ではありません(2つのスイートを実行したいのですが、それぞれのテストを重複しないようにしています)。 –