今天突發奇想 想看看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 來進行異常處理。同時這是乙個立即執行函式,使得我們在載入框架...