Android で Mockito を使用して単体テストを開始したところです。テスト対象のクラスで、通常のクラス/オブジェクトの代わりにモック クラス/オブジェクトを使用するにはどうすればよいですか?
質問する
52 次
2 に答える
1
テストを作成するクラスには @InjectMocks を使用できます。
@InjectMocks private EmployManager manager;
次に、モックしているクラスに @Mock を使用できます。これが依存クラスになります。
@Mock private EmployService service;
次に、セットアップ メソッドを記述して、テストで使用できるようにします。
@Before public void setup() throws Exception { manager = new EmployManager(); service = mock(EmployService.class); manager.setEmployService(service); MockitoAnnotations.initMocks(this); }
次に、テストを記述します。
@Test
public void testSaveEmploy() throws Exception {
Employ employ = new Employ("u1");
manager.saveEmploy(employ);
// Verify if saveEmploy was invoked on service with given 'Employ'
// object.
verify(service).saveEmploy(employ);
// Verify with Argument Matcher
verify(service).saveEmploy(Mockito.any(Employ.class));
}
于 2013-08-13T06:32:24.573 に答える
0
依存関係を注入することにより:
public class ClassUnderTest
private Dependency dependency;
public ClassUnderTest(Dependency dependency) {
this.dependency = dependency;
}
// ...
}
...
Dependency mockDependency = mock(Dependency.class);
ClassUnderTest c = new ClassUnderTest(mockDependency);
セッターを使用して依存関係を注入したり、@Mock
および@InjectMocks
アノテーションを使用してプライベート フィールドを直接注入したりすることもできます (それらの動作の詳細については、javadocを参照してください)。
于 2013-08-12T11:23:59.687 に答える