【问题标题】:How to mock application context如何模拟应用程序上下文
【发布时间】:2017-11-02 11:03:11
【问题描述】:

我们如何模拟应用程序上下文?我有一个我打算为其编写测试的演示者。它接收的参数是viewContext。如何创建一个模拟以使上下文工作?

public TutorProfilePresenter(TutorProfileScreenView view, Context context){
     this.view = view;
     this.context = context
}
            
public void setPrice(float price,int selectedTopics){
      int topicsPrice = 0;
      if(selectedTopics>2)
      {
        topicsPrice = (int) ((price/5.0)*(selectedTopics-2));
      }
                    
                    
      view.setBasePrice(price,topicsPrice,selectedTopics,
                        price+topicsPrice);
}

【问题讨论】:

  • 添加你要测试的impl并让我们看看
  • 我更新了我的问题。请检查一下
  • 我只是想写一个示例 sn-p 来测试是否正在调用来自演示者的视图中的方法(这是一个接口)来更新活动内容。

标签: java android unit-testing mockito


【解决方案1】:

作为基础,我将使用 Mockito 注释(我假设您也想模拟视图):

public class TutorProfilePresenter{

   @InjectMocks
   private TutorProfilePresenter presenter;

   @Mock
   private TutorProfileScreenView viewMock;
   @Mock
   private Context contextMock;

   @Before
   public void init(){
       MockitoAnnotations.initMocks(this);
   }

   @Test
   public void test() throws Exception{
      // configure mocks
      when(contextMock.someMethod()).thenReturn(someValue);

      // call method on presenter

      // verify
      verify(viewMock).setBasePrice(someNumber...)
   }

}

这会将准备好配置的模拟注入到您的测试类中。

更多关于 Mockito 存根的见解:sourceartists.com/mockito-stubbing

【讨论】:

  • 我们如何确保活动是通过演示者的视图调用的?我如何编写测试来检查它?
  • 你在例子中使用验证
猜你喜欢
  • 1970-01-01
  • 2022-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-12
  • 1970-01-01
  • 2016-11-02
相关资源
最近更新 更多