Suche senden
Hochladen
減少重複的測試程式碼的一些方法
•
Als PPTX, PDF herunterladen
•
4 gefällt mir
•
665 views
kao kuo-tung
Folgen
如何避免重複測試程式碼的一些方法
Weniger lesen
Mehr lesen
Software
Melden
Teilen
Melden
Teilen
1 von 27
Jetzt herunterladen
Empfohlen
用十分鐘瞭解JavaScript的模組 -- 《還有關於npm套件管理的那些事情》
用十分鐘瞭解JavaScript的模組 -- 《還有關於npm套件管理的那些事情》
鍾誠 陳鍾誠
用十分鐘 向jserv學習作業系統設計
用十分鐘 向jserv學習作業系統設計
鍾誠 陳鍾誠
测试驱动的前端开发初探
测试驱动的前端开发初探
hua qiu
用十分鐘瞭解 《JavaScript的程式世界》
用十分鐘瞭解 《JavaScript的程式世界》
鍾誠 陳鍾誠
利用Javascript 與 html5開發線上遊戲_0基本概念
利用Javascript 與 html5開發線上遊戲_0基本概念
azole Lai
深度學習的機器翻譯技術 (使用node.js的neataptic套件實作)
深度學習的機器翻譯技術 (使用node.js的neataptic套件實作)
鍾誠 陳鍾誠
用JavaScript 實踐《軟體工程》的那些事兒!
用JavaScript 實踐《軟體工程》的那些事兒!
鍾誠 陳鍾誠
用十分鐘瞭解 陳鍾誠的程式設計課 (採用JavaScript + C的原因)
用十分鐘瞭解 陳鍾誠的程式設計課 (採用JavaScript + C的原因)
鍾誠 陳鍾誠
Empfohlen
用十分鐘瞭解JavaScript的模組 -- 《還有關於npm套件管理的那些事情》
用十分鐘瞭解JavaScript的模組 -- 《還有關於npm套件管理的那些事情》
鍾誠 陳鍾誠
用十分鐘 向jserv學習作業系統設計
用十分鐘 向jserv學習作業系統設計
鍾誠 陳鍾誠
测试驱动的前端开发初探
测试驱动的前端开发初探
hua qiu
用十分鐘瞭解 《JavaScript的程式世界》
用十分鐘瞭解 《JavaScript的程式世界》
鍾誠 陳鍾誠
利用Javascript 與 html5開發線上遊戲_0基本概念
利用Javascript 與 html5開發線上遊戲_0基本概念
azole Lai
深度學習的機器翻譯技術 (使用node.js的neataptic套件實作)
深度學習的機器翻譯技術 (使用node.js的neataptic套件實作)
鍾誠 陳鍾誠
用JavaScript 實踐《軟體工程》的那些事兒!
用JavaScript 實踐《軟體工程》的那些事兒!
鍾誠 陳鍾誠
用十分鐘瞭解 陳鍾誠的程式設計課 (採用JavaScript + C的原因)
用十分鐘瞭解 陳鍾誠的程式設計課 (採用JavaScript + C的原因)
鍾誠 陳鍾誠
如何用十分鐘快速瞭解一個程式語言 《以JavaScript和C語言為例》
如何用十分鐘快速瞭解一個程式語言 《以JavaScript和C語言為例》
鍾誠 陳鍾誠
Non-MVC Web Framework
Non-MVC Web Framework
Fred Chien
TypeScript-twmvc#16
TypeScript-twmvc#16
twMVC
向jquery学习
向jquery学习
jay li
使用Javascript及HTML5打造協同運作系統
使用Javascript及HTML5打造協同運作系統
Hsu Ping Feng
Jni攻略之十――操作Java虚拟机
Jni攻略之十――操作Java虚拟机
yiditushe
學好 node.js 不可不知的事
學好 node.js 不可不知的事
Ben Lue
Async: ways to store state
Async: ways to store state
kao kuo-tung
Why is a[1] fast than a.get(1)
Why is a[1] fast than a.get(1)
kao kuo-tung
Openstack 簡介
Openstack 簡介
kao kuo-tung
Docker 原理與實作
Docker 原理與實作
kao kuo-tung
Openstack swift, how does it work?
Openstack swift, how does it work?
kao kuo-tung
Python to scala
Python to scala
kao kuo-tung
Openstack taskflow 簡介
Openstack taskflow 簡介
kao kuo-tung
Immutable infrastructure 介紹與實做:以 kolla 為例
Immutable infrastructure 介紹與實做:以 kolla 為例
kao kuo-tung
Intorduce to Ceph
Intorduce to Ceph
kao kuo-tung
Test driven-frontend-develop
Test driven-frontend-develop
fangdeng
轻量级Flash服务器开发框架(刘恒)
轻量级Flash服务器开发框架(刘恒)
FLASH开发者交流会
Noder eyes for frontend guys
Noder eyes for frontend guys
Hsu Ping Feng
Why use dependency injection
Why use dependency injection
彥彬 洪
Test corner #20 誰說只有測試金字塔
Test corner #20 誰說只有測試金字塔
yinwilliam
Java 網路程式
Java 網路程式
PingLun Liao
Weitere ähnliche Inhalte
Was ist angesagt?
如何用十分鐘快速瞭解一個程式語言 《以JavaScript和C語言為例》
如何用十分鐘快速瞭解一個程式語言 《以JavaScript和C語言為例》
鍾誠 陳鍾誠
Non-MVC Web Framework
Non-MVC Web Framework
Fred Chien
TypeScript-twmvc#16
TypeScript-twmvc#16
twMVC
向jquery学习
向jquery学习
jay li
使用Javascript及HTML5打造協同運作系統
使用Javascript及HTML5打造協同運作系統
Hsu Ping Feng
Jni攻略之十――操作Java虚拟机
Jni攻略之十――操作Java虚拟机
yiditushe
學好 node.js 不可不知的事
學好 node.js 不可不知的事
Ben Lue
Was ist angesagt?
(7)
如何用十分鐘快速瞭解一個程式語言 《以JavaScript和C語言為例》
如何用十分鐘快速瞭解一個程式語言 《以JavaScript和C語言為例》
Non-MVC Web Framework
Non-MVC Web Framework
TypeScript-twmvc#16
TypeScript-twmvc#16
向jquery学习
向jquery学习
使用Javascript及HTML5打造協同運作系統
使用Javascript及HTML5打造協同運作系統
Jni攻略之十――操作Java虚拟机
Jni攻略之十――操作Java虚拟机
學好 node.js 不可不知的事
學好 node.js 不可不知的事
Andere mochten auch
Async: ways to store state
Async: ways to store state
kao kuo-tung
Why is a[1] fast than a.get(1)
Why is a[1] fast than a.get(1)
kao kuo-tung
Openstack 簡介
Openstack 簡介
kao kuo-tung
Docker 原理與實作
Docker 原理與實作
kao kuo-tung
Openstack swift, how does it work?
Openstack swift, how does it work?
kao kuo-tung
Python to scala
Python to scala
kao kuo-tung
Openstack taskflow 簡介
Openstack taskflow 簡介
kao kuo-tung
Immutable infrastructure 介紹與實做:以 kolla 為例
Immutable infrastructure 介紹與實做:以 kolla 為例
kao kuo-tung
Intorduce to Ceph
Intorduce to Ceph
kao kuo-tung
Andere mochten auch
(9)
Async: ways to store state
Async: ways to store state
Why is a[1] fast than a.get(1)
Why is a[1] fast than a.get(1)
Openstack 簡介
Openstack 簡介
Docker 原理與實作
Docker 原理與實作
Openstack swift, how does it work?
Openstack swift, how does it work?
Python to scala
Python to scala
Openstack taskflow 簡介
Openstack taskflow 簡介
Immutable infrastructure 介紹與實做:以 kolla 為例
Immutable infrastructure 介紹與實做:以 kolla 為例
Intorduce to Ceph
Intorduce to Ceph
Ähnlich wie 減少重複的測試程式碼的一些方法
Test driven-frontend-develop
Test driven-frontend-develop
fangdeng
轻量级Flash服务器开发框架(刘恒)
轻量级Flash服务器开发框架(刘恒)
FLASH开发者交流会
Noder eyes for frontend guys
Noder eyes for frontend guys
Hsu Ping Feng
Why use dependency injection
Why use dependency injection
彥彬 洪
Test corner #20 誰說只有測試金字塔
Test corner #20 誰說只有測試金字塔
yinwilliam
Java 網路程式
Java 網路程式
PingLun Liao
Legacy code 讀書會 1st (Ch1 - Ch5)
Legacy code 讀書會 1st (Ch1 - Ch5)
Fong Liou
利用免費服務建立R的持續整合環境
利用免費服務建立R的持續整合環境
Wush Wu
Tip for Editors
Tip for Editors
Chun-Yu Tseng
构建可维护的Javascript 小米网
构建可维护的Javascript 小米网
yang alex
如何設計電腦 -- 還有讓電腦變快的那些方法
如何設計電腦 -- 還有讓電腦變快的那些方法
鍾誠 陳鍾誠
11132020_python tutor.pdf
11132020_python tutor.pdf
ssuserc840d7
银弹!银弹! 徐毅@Italk salon 2011
银弹!银弹! 徐毅@Italk salon 2011
Yi Xu
React.js what do you really mean?
React.js what do you really mean?
昱安 周
Bruce-輕鬆上手Asp.net web api 2.1.2
Bruce-輕鬆上手Asp.net web api 2.1.2
Study4TW
輕鬆上手ASP.NET Web API 2.1.2
輕鬆上手ASP.NET Web API 2.1.2
Bruce Chen
如何與全世界分享你的 Library
如何與全世界分享你的 Library
Mu Chun Wang
[Flash开发者交流][2010.05.30]轻量级flash服务器开发框架 刘恒
[Flash开发者交流][2010.05.30]轻量级flash服务器开发框架 刘恒
Shanda innovation institute
Ähnlich wie 減少重複的測試程式碼的一些方法
(18)
Test driven-frontend-develop
Test driven-frontend-develop
轻量级Flash服务器开发框架(刘恒)
轻量级Flash服务器开发框架(刘恒)
Noder eyes for frontend guys
Noder eyes for frontend guys
Why use dependency injection
Why use dependency injection
Test corner #20 誰說只有測試金字塔
Test corner #20 誰說只有測試金字塔
Java 網路程式
Java 網路程式
Legacy code 讀書會 1st (Ch1 - Ch5)
Legacy code 讀書會 1st (Ch1 - Ch5)
利用免費服務建立R的持續整合環境
利用免費服務建立R的持續整合環境
Tip for Editors
Tip for Editors
构建可维护的Javascript 小米网
构建可维护的Javascript 小米网
如何設計電腦 -- 還有讓電腦變快的那些方法
如何設計電腦 -- 還有讓電腦變快的那些方法
11132020_python tutor.pdf
11132020_python tutor.pdf
银弹!银弹! 徐毅@Italk salon 2011
银弹!银弹! 徐毅@Italk salon 2011
React.js what do you really mean?
React.js what do you really mean?
Bruce-輕鬆上手Asp.net web api 2.1.2
Bruce-輕鬆上手Asp.net web api 2.1.2
輕鬆上手ASP.NET Web API 2.1.2
輕鬆上手ASP.NET Web API 2.1.2
如何與全世界分享你的 Library
如何與全世界分享你的 Library
[Flash开发者交流][2010.05.30]轻量级flash服务器开发框架 刘恒
[Flash开发者交流][2010.05.30]轻量级flash服务器开发框架 刘恒
Mehr von kao kuo-tung
用 Open source 改造鍵盤
用 Open source 改造鍵盤
kao kuo-tung
那些年,我們一起看的例外
那些年,我們一起看的例外
kao kuo-tung
Python 中 += 與 join比較
Python 中 += 與 join比較
kao kuo-tung
Garbage collection 介紹
Garbage collection 介紹
kao kuo-tung
Python 如何執行
Python 如何執行
kao kuo-tung
C python 原始碼解析 投影片
C python 原始碼解析 投影片
kao kuo-tung
recover_pdb 原理與介紹
recover_pdb 原理與介紹
kao kuo-tung
Mehr von kao kuo-tung
(7)
用 Open source 改造鍵盤
用 Open source 改造鍵盤
那些年,我們一起看的例外
那些年,我們一起看的例外
Python 中 += 與 join比較
Python 中 += 與 join比較
Garbage collection 介紹
Garbage collection 介紹
Python 如何執行
Python 如何執行
C python 原始碼解析 投影片
C python 原始碼解析 投影片
recover_pdb 原理與介紹
recover_pdb 原理與介紹
減少重複的測試程式碼的一些方法
1.
減少重複的測試程式碼的一 些方法 果凍
2.
簡介 ● 任職於迎廣科技
o python o openstack ● c++, java, scala ● http://about.me/ya790206 ● http://blog.blackwhite.tw / ● https://github.com/ya790 206/call_seq
3.
不重要的聲明 ● 我用unittest
的libraray,不代表是unittest code 。 ● 故事純屬虛構。如有雷同,純屬巧合。
4.
前情提要 ● 有個web
service。 ● 使用者只有一種。 ● 要登入才能進行動作
5.
一段測試碼
6.
時間不斷的前進 ● 有一天
● 就是有一天 ● 使用者分成兩種! o 假設分成兩種。admin 和user。 o user 能使用的功能是admin 的功能的子集合。
7.
測試碼 Admin User
重複的程式 碼出現了
8.
How to slove
it? ● inherited ● composition 今日重點
9.
我不想讓base class 被測試,
因此跳過它。 For user For admin
10.
● So far
so good. ● But … ● If we have many test case, we need to add `setUpClass` to every class. ● WTF !
11.
redundancy
12.
How to solve
it ? ● decorator ● meta class See it first.
13.
decorator
14.
Test Code 在多都不怕
一行就搞定
15.
● Decorator is
good. ● Does it end? ● Not yet. If you have custom `setUpClass`, how to make it?
16.
Now we can
custom setUpClass
17.
● Does it
end? ● Not yet. We have another redundancy code.
18.
Test Code redundancy(If
you don’t think so, that’s ok.
19.
How to slove
it if you think it is redundancy ● Multiple Inheritance
20.
Login class go
first, so it can call login correctly.
21.
How does it
work? ● mro (Method Resolution Order )
22.
Is it possible
to make it shorter? Maybe it’s not useful.
23.
Another way to
solve redundancy. ● decorator ● meta class See it now.
24.
Meta class
25.
Meta class
26.
Meta class ●
不算是一個好的作法 ● meta class 是為了建立class 前,先作一些事 情。可是這個例子沒有。這個例子是事後才 作些事情。 ● 因為是事後才作些事情,因此可用decorator 代替。
27.
結論 ● 懶得寫重複的程式碼是種美德:
o 可以讓你維護更少的程式碼 o 可以讓你寫更少的程式碼 o 可以讓你讀更少的程式碼 ● python 很好用,可以讓你懶惰。
Hinweis der Redaktion
先簡單的自我介紹 任職於迎廣科技 工作主要圍繞在 openstack 與 python 閒暇時,會學習一些不同的技術 像 scala 與嵌入式系統 blogger 會紀錄平常所學 最後一個連結是我的 github 那是一隻可以紀錄 python 執行過程的程式 讓我們開始docker之旅吧
Jetzt herunterladen