JUnit4 原始碼 之 基礎模組

2021-08-30 04:39:38 字數 2496 閱讀 4549

今天突發奇想 想看看junit的實現,於是就翻閱了junit的官網和github project,並初步有所了解,就此進行簡單原始碼記錄。

// from junitcore

public result run

(computer computer, class<

?>..

. classes)

// from request

public

static request classes

(computer computer, class<

?>..

. classes)

// from junitcore

public result run

(runner runner)

finally

return result;

}

// alldefaultpossibilitiesbuilder

@override

public runner runnerforclass

(class<

?> testclass)

throws throwable

}return null;

}

// from annotatedbuilder

@override

public runner runnerforclass

(class<

?> testclass)

throws exception

}return null;

}public runner buildrunner

(class<

?extends

runner

> runnerclass,

class<

?> testclass)

throws exception

catch

(nosuchmethodexception e)

catch

(nosuchmethodexception e2)

}}

// from runafters

@override

public

void

evaluate()

throws throwable

catch

(throwable e)

finally

catch

(throwable e)}}

multiplefailureexception.

assertempty

(errors);}

// from runbefores

@override

public

void

evaluate()

throws throwable

next.

evaluate()

;}// from invokemethod

@override

public

void

evaluate()

throws throwable

// from failontimeout

@override

public

void

evaluate()

throws throwable

}private throwable getresult

(futuretask

task, thread thread)

else

}catch

(interruptedexception e)

catch

(executionexception e)

catch

(timeoutexception e)

}private

class

callablestatement

implements

callable

catch

(exception e)

catch

(throwable e)

return null;

}public

void

awaitstarted()

throws interruptedexception

}

advanced

具體核心**邏輯 在下篇中講解

用於包裝乙個test類,與test method的對應關係為 test method: runner = m : 1

可以這麼描述,一般都會使用parentrunner抽象類,其中有乙個屬性為children,該屬性中包裹著test method

簡單鋪墊一下runner的常用實現類的繼承關係,以便於下篇文章講解

Java單體測試之JUnit4

junit4通過註解的方式來識別測試方法。目前支援的主要註解有 beforeclass 全域性只會執行一次,而且是第乙個執行 before 在測試方法執行之前執行 test 測試方法 after 在測試方法執行之後允許 afterclass 全域性只會執行一次,而且是最後乙個執行 ignore 忽略...

JUnit原始碼閱讀 閱讀基礎

junit核心類 junit.framework test testcase testresult testsuitejunit.textui testrunner junit生命週期 1 初始化階段 2 執行階段 3 結果捕捉階段 3.核心類功能 1 test介面代表了測試能力,實現了test介面...

Zepto原始碼之ie模組

function catch e catch e 這段 的主要作用是改寫 getcomputedstyle 方法。主要是為了 zepto 在不同的瀏覽器下,可以進行相同的操作。通過檢視 我們可以看出主要使用的方法是利用 try catch 來進行異常處理。同時這是乙個立即執行函式,使得我們在載入框架...