【发布时间】:2017-04-23 10:18:44
【问题描述】:
下面是简单的计算器应用程序,我想使用 Junit4 和 mockito 框架对其进行测试,我在 Junit4 上测试了该应用程序,它工作正常,但我在 mockito 实现方面遇到问题
CalculatorOperationsInterfaces.java
public interface CalculatorOperationsInterfaces {
public double add(double input1, double input2);
public double subtract(double input1, double input2);
public double multiply(double input1, double input2);
public double divide(double input1, double input2);
}
MainActivity.java
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity implements CalculatorOperationsInterfaces {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public double add(double input1, double input2) {
return (input1 + input2);
}
@Override
public double subtract(double input1, double input2) {
return (input1 - input2);
}
@Override
public double multiply(double input1, double input2) {
return (input1 * input2);
}
@Override
public double divide(double input1, double input2) {
if(input2==0)
return -1;
else
return (input1 / input2);
}
}
CalculatorOperationsMockTest.java
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
import static org.mockito.Mockito.when;
// @RunWith attaches a runner with the test class to initialize the test data
@RunWith(MockitoJUnitRunner.class)
public class CalculatorOperationsMockTest {
//@Mock annotation is used to create the mock object to be injected
@Mock
CalculatorOperationsInterfaces calcService;
@Before
public void setUp() {
calcService = new MainActivity();
}
@After
public void tearDown() {
calcService = null;
}
@Test
public void add(){
//add the behavior of calc service to add two numbers
when(calcService.add(10.0,20.0)).thenReturn(30.00);
//test the add functionality
Assert.assertEquals(calcService.add(10.0, 20.0),30.0,0);
}
}
我使用Junit 成功测试了上述MainActivity.java,但是当我尝试运行CalculatorOperationsMockTest.java 文件时,我是Mockito 框架的新手,我收到以下错误,我不知道如何解决它
Class not found: "myappmania.local_jvm_unit_test.CalculatorOperationsMockTest"Empty test suite.
【问题讨论】: