美文网首页
项目-Junit5单元测试

项目-Junit5单元测试

作者: Jacinth | 来源:发表于2017-07-03 11:52 被阅读0次
public class ResetPasswordPresenterTest extends BaseTest {

    @Mock
    private ResetPasswordView mResetPasswordView;
    private AccountLogic mAccountLogic;

    private ResetPasswordPresenter mResetPasswordPresenter;
    private String fakeoriginPassword = "";
    private String fakenewPassword = "";
    private String fakeconfirmPassword = "";

    @BeforeEach
    public void setUp() {
        super.setup();
        MockitoAnnotations.initMocks(this);
        mAccountLogic = Mockito.mock(AccountLogic.class);

        mResetPasswordPresenter = new ResetPasswordPresenter(mResetPasswordView);
        mResetPasswordPresenter.mAccountLogic = mAccountLogic;
    }

    @DisplayName("onOriginPasswordChangedIsEmpty")
    @Test
    public void onOriginPasswordChangedIsEmpty() {
        mResetPasswordPresenter.onOriginPasswordChanged(fakeoriginPassword);
        Mockito.verify(mResetPasswordView).disableConfirmButton();
    }

    @DisplayName("onOriginPasswordChanged")
    @Test
    public void onOriginPasswordChanged() {
        mResetPasswordPresenter.newPassword = "newPassword";
        mResetPasswordPresenter.confirmPassword = "newPassword";
        mResetPasswordPresenter.onOriginPasswordChanged("originPassword");
        Mockito.verify(mResetPasswordView).enableConfirmButton();
    }

    @DisplayName("onNewPasswordChangedIsEmpty")
    @Test
    public void onNewPasswordChangedIsEmpty() {
        mResetPasswordPresenter.onNewPasswordChanged(fakenewPassword);
        Mockito.verify(mResetPasswordView).disableConfirmButton();
    }

    @DisplayName("onNewPasswordChanged")
    @Test
    public void onNewPasswordChanged() {
        mResetPasswordPresenter.originPassword = "originPassword";
        mResetPasswordPresenter.confirmPassword = "newPassword";
        mResetPasswordPresenter.onNewPasswordChanged("newPassword");
        Mockito.verify(mResetPasswordView).enableConfirmButton();
    }

    @DisplayName("onConfirmPasswordChangedIsEmpty")
    @Test
    public void onConfirmPasswordChangedIsEmpty() {
        mResetPasswordPresenter.onConfirmPasswordChanged(fakeconfirmPassword);
        Mockito.verify(mResetPasswordView).disableConfirmButton();
    }

    @DisplayName("onConfirmPasswordChanged")
    @Test
    public void onConfirmPasswordChanged() {
        mResetPasswordPresenter.originPassword = "originPassword";
        mResetPasswordPresenter.newPassword = "newPassword";
        mResetPasswordPresenter.onConfirmPasswordChanged("newPassword");
        Mockito.verify(mResetPasswordView).enableConfirmButton();
    }

    @DisplayName("onClickConfirm_passwordLengthIsTooShort")
    @Test
    public void onClickConfirm_passwordLengthIsTooShort() {
        mResetPasswordPresenter.newPassword = "12345";
        mResetPasswordPresenter.confirmPassword = "12345";

        Mockito.when(mAccountLogic.resetPassword("originPassword", "newPassword"))
            .thenReturn(Observable.empty());

        mResetPasswordPresenter.onClickConfirm();

        Mockito.verify(mResetPasswordView).passwordLengthIsTooShort();
    }

    @DisplayName("onClickConfirm_incorrectConfirmPassword")
    @Test
    public void onClickConfirm_incorrectConfirmPassword() {
        mResetPasswordPresenter.newPassword = "newPassword";
        mResetPasswordPresenter.confirmPassword = "confirmPassword";

        Mockito.when(mAccountLogic.resetPassword("originPassword", "newPassword"))
            .thenReturn(Observable.empty());

        mResetPasswordPresenter.onClickConfirm();

        Mockito.verify(mResetPasswordView).incorrectConfirmPassword();
    }

    @DisplayName("onClickConfirmFailed")
    @Test
    public void onClickConfirmFailed() {
        mResetPasswordPresenter.originPassword = "originPassword";
        mResetPasswordPresenter.newPassword = "newPassword";
        mResetPasswordPresenter.confirmPassword = "newPassword";

        Mockito.when(mAccountLogic.resetPassword("originPassword", "newPassword"))
            .thenReturn(Observable.error(new HttpBadRequestException()));

        mResetPasswordPresenter.onClickConfirm();

        Mockito.verify(mResetPasswordView).originPasswordIsIncorrect();
    }

    @DisplayName("onClickConfirm")
    @Test
    public void onClickConfirm() {
        mResetPasswordPresenter.originPassword = "originPassword";
        mResetPasswordPresenter.newPassword = "newPassword";
        mResetPasswordPresenter.confirmPassword = "newPassword";

        Mockito.when(mAccountLogic.resetPassword("originPassword", "newPassword"))
            .thenReturn(Observable.empty());

        mResetPasswordPresenter.onClickConfirm();

        Mockito.verify(mResetPasswordView).resetPasswordSuccess();
    }
}

官方

JUnit 5 User Guide

中文

「译」JUnit 5 系列:环境搭建
「译」JUnit 5 系列:基础入门
「译」JUnit 5 系列:架构体系
「译」JUnit 5 系列:扩展模型(Extension Model)
「译」JUnit 5 系列:条件测试

Mockito 初探

相关文章

  • mvn test 时,编码导致测试失败问题记录

    近日,在 maven 工程中,出现了奇怪的问题,项目使用junit5做单元测试,全部测试通过,但是在使用 mvn ...

  • 项目-Junit5单元测试

    官方 JUnit 5 User Guide 中文 「译」JUnit 5 系列:环境搭建「译」JUnit 5 系列:...

  • SpringBoot单元测试

    想要在SB使用junit5进行单元测试,只需先导入依赖: 然后在测试类上标注SpringBootTest即可: 常...

  • 从0到1上手JUnit5

    本文假定读者有单元测试基础,不会对单元测试的概念做过多的介绍,主要讲解junit5的新功能用法,让读者快速上手Ju...

  • JUnit 5 教程 之 基础篇

    JUnit 5 作为新一代的 Java 单元测试框架,提供很多改进。例如对比 JUnit4 与 JUnit5 的官...

  • IntelliJ IDEA - org.junit.jupite

    刚上手IntelliJ,导入项目原来写的测试类报错了。 JUnit5才有assertArrayEquals方法,我...

  • Junit5集成到Maven工程

    1.说明 Junit5是单元测试框架Juint4的升级版,与Junit4框架有很大的不同,它由三个模块组成: JU...

  • JUnit5 初体验

    JDK都更新换代到12了,不来尝试一下JUnit5么? JUnit5 Maven依赖 Junit5包括三个模块:J...

  • Swift -- 单元测试

    新建项目时,选中单元测试选项 如果是老项目,创建的时候没有选择单元测试,则 一键启动所有单元测试

  • 【测试相关】JUnit5介绍

    关于JUnit5,前辈们的文章写的都很好,比如:一篇教你学会Junit5[https://zhuanlan.zhi...

网友评论

      本文标题:项目-Junit5单元测试

      本文链接:https://www.haomeiwen.com/subject/hpmacxtx.html