0

Android で Mockito を使用して単体テストを開始したところです。テスト対象のクラスで、通常のクラス/オブジェクトの代わりにモック クラス/オブジェクトを使用するにはどうすればよいですか?

4

2 に答える 2

1
  1. テストを作成するクラスには @InjectMocks を使用できます。

    @InjectMocks private EmployManager manager;

  2. 次に、モックしているクラスに @Mock を使用できます。これが依存クラスになります。

    @Mock private EmployService service;

  3. 次に、セットアップ メソッドを記述して、テストで使用できるようにします。

@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 に答える