ソースコード上のRuleの宣言順序は実際の実行順序とは関係ないのでしょうか?
→はい、関係ありません。(順序は保証されません)
また、決まった順序でRuleが実行されるように制御する方法ってあるのでしょうか?
org.junit.rules.RuleChainを使うとRuleの実行順序を制御できますよ。
RuleChainの実行順序は以下メソッドで設定します。(aroundメソッドは入れ子構造で、複数指定可能です。)
・outerRuleメソッド・・・最初に初期化し、最後に終了処理を行う一番外側の処理
・aroundメソッド・・・outerRuleで設定したルールの後から初期化し、先に終了処理を行う内側の処理
(例)
lang
1public class RuleChainExTest {
2
3 //外側のルールはouterRule、内側のルールはaroundで追加
4 @Rule
5 public TestRule chain = RuleChain
6 .outerRule(new MyResource1("outer rule"))
7 .around(new MyResource2("inner rule"));
8
9 @Test
10 public void testSomeMethod() {
11 //targetメソッド実行
12 }
13}
14
15class MyResource1 extends ExtarnalResource {
16 //省略
17}
18class MyResource2 extends ExtarnalResource {
19 //省略
20}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。