【问题标题】:How To Make Android Functional Unit Test如何进行 Android 功能单元测试
【发布时间】:2017-01-19 13:39:27
【问题描述】:

我想对此方法进行功能单元测试作为 Junit4 测试的示例

public boolean validatePasswordExpression(String newPassword) {
        int passwordLength = newPassword.length();
        if (passwordLength > 20 || passwordLength < 8)
            return false;

        else return true;
    }

【问题讨论】:

    标签: android unit-testing


    【解决方案1】:

    假设您已经阅读了有关 how to create local Unit Tests in Android Studio 的内容,因为您只是在测试 String 的有效长度,您需要检查以下情况:

    • 有效长度
    • 长度太短
    • 长度过长
    • 可接受范围内的长度
    • null 字符串

    所以这样的事情就足够了(假设你的班级被称为PasswordChecker,用它实际的名字替换):

    private PasswordChecker checker;
    
    @Before public void setUp() {
        checker = new PasswordChecker();
    }
    
    @Test public void testValidPassword() {
        assertTrue(checker.validatePasswordExpression("validPassword1"));
    }
    
    @Test public void testShortPasswordReturnsFalse() {
        assertFalse(checker.validatePasswordExpression("Short"));
    }
    
    @Test public void testNullPasswordReturnsFalse() {
        assertFalse(checker.validatePasswordExpression(null));
    }
    
    @Test public void testLongPasswordReturnsFalse() {
        assertFalse(checker.validatePasswordExpression("ThisPasswordIsWayTooLongSoTrySomethingElse"));
    }
    
    @Test public void testEightCharPasswordReturnsTrue() {
        assertTrue(checker.validatePasswordExpression("IsValid1"));
    }
    
    @Test public void testNinteenCharPasswordReturnsTrue() {
        assertTrue(checker.validatePasswordExpression("ThisPasswordIsValid"));
    }
    
    @Test public void testTwentyCharPasswordReturnsFalse() {
        assertFalse(checker.validatePasswordExpression("ThisPasswordIsTwenty"));
    }
    

    【讨论】:

    • 当我运行这个TestClass时出现错误:java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
    • Looper.prepare() 放入setUp() 方法中。
    猜你喜欢
    • 2020-11-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-12
    • 2022-11-29
    • 1970-01-01
    • 2018-02-25
    • 2011-09-16
    • 1970-01-01
    相关资源
    最近更新 更多