knockoutjs 读源码

1.整个项目文件分为build,spec,src三个文件夹,package.json,Gruntfile.js

2.由于源文件是以Grunt 打包,要编译源文件输出为knockoutjs.js,根据README.md文件 。安装

npm install -g grunt-cli

npm install

grunt

生成的文件保存在

build/output/ 文件夹下。

3.源代码带有测试文件,是在spec文件夹下。你可以使用PhantomJS运行测试,PhantomJS(它全面支持web而不需浏览器支持,其快速,原生支持各种Web标准:  DOM 处理, CSS 选择器, JSON, Canvas, 和 SVG。 PhantomJS 可以用于 页面自动化 , 网络监测 , 网页截屏 ,以及 无界面测试 等).安装之前可以先下载

http://phantomjs.org/download.html

也可以不用phantomjs.直接在浏览器中打开spec/runner.html文件查看测试用例。测试用例是用

jasmine 来编写的测试用例

4.spec 下的 runner.html文件的主函数内容

 1    <script type="text/javascript">
 2           (function() {
 3             var jasmineEnv = jasmine.getEnv();
 4             jasmineEnv.updateInterval = 500;
 5
 6             var htmlReporter = new jasmine.HtmlReporter();
 7             jasmineEnv.addReporter(htmlReporter);
 8             jasmineEnv.specFilter = htmlReporter.specFilter;
 9
10             var testlingParam = /[?&]testling=true/.test(location.href);
11             if (testlingParam)
12                 jasmineEnv.addReporter(new jasmine.TapReporter()); // For Testling CI
13             jasmineEnv.execute();
14           })();
15         </script>

通常这是固定的写法。会把测试用例的结果输出在页面中。

5.熟悉Jasmine

  1.页面需要引用jasmine 这几个文件

<script type="text/javascript" src="lib/jasmine-1.2.0/jasmine.js"></script>

<script type="text/javascript" src="lib/jasmine-1.2.0/jasmine-html.js"></script>

<!-- our jasmine extensions -->

<script type="text/javascript" src="lib/jasmine.extensions.js"></script>

  2.Jssmine 的测试用例编写

一个文件一个describe,几个测试用例就几个it

  

describe(‘A Suit‘, function() {

  

beforeEach(function(){

    //执行每个it时执行的代码  

  });

afterEach(function(){

  //执行it 结束后执行的代码

  });

  it(‘a test‘,function(){

    expect(‘‘).toEqual(‘‘); // ecpect 断言

  });

});

6.根据源码提供的测试用例熟悉knockoutjs 的API。

原文地址:https://www.cnblogs.com/michelle-phone/p/8969669.html

时间: 2024-12-17 10:41:37

knockoutjs 读源码的相关文章

这样读源码,不牛X也难

程序员在工作过程中,会遇到很多需要阅读源码的场景,比如技术预研.选择技术框架.接手以前的项目.review他人的代码.维护老产品等等.可以说,阅读源代码是程序员的基本功,这项基本功是否扎实,会在很大程度上影响一个程序员在技术上的成长速度. 2014年写<Qt on Android核心编程>和<Qt Quick核心编程>时,很多内容都是通过分析Qt源码搞明白的.这阵子研究CEF和PPAPI,也主要靠研究源代码来搞明白用法.最近工作上要修改已有项目的一个子系统,也是得硬着头皮先读懂代码

Java读源码学设计模式:适配器Adapter

适配器模式相关源码:slf4j-1.6.1.hibernate-3.6.7 大家都知道,log4j是一个广泛使用的日志工具,除此之外,sun公司在JDK中也有自己的日志工具,也就是java.util.logging.Logger.当然还有其他一些日志工具. 多种日志工具功能和使用方式类似,一般都包含debug.info.warn.error等日志级别的方法,但却没有实现共同的接口.这一点不像JDBC,虽然关系型数据库种类很多,例如MySQL.Oracle等,但是有一套统一的接口,也就是JDBC.

CloudGeek读源码系列-cache2go源码解析

一.cache2go是什么 作者说:Concurrency-safe golang caching library with expiration capabilities. 什么意思呢? 有心跳机制的并发安全的go语言缓存库 学习一门语言有一个很好的方法就是阅读优秀的开源项目源码,学习优秀前辈的编码方式,同时发现自己的知识盲区,不断获取新知识!cache2go很精简,代码量很少,非常适合刚接触go语言的同学作为入门级项目来读源码. 下面我会先介绍项目组成,然后讲解核心数据结构,再梳理整个实现逻

杂谈篇之我是怎么读源码的,授之以渔

前言 开心一刻 今天上课不小心睡着了,结果被老师叫起来回答问题,这是背景.无奈之下看向同桌寻求帮助,同桌小声说到选C,结果周围的人都说选C,向同桌投去一个感激的眼神后大声说道选C.刚说完教室就笑开了,老师一脸恨铁不成钢的表情说选你个头,我叫你翻译文言文你选C!你出去,你给我出去.看着同桌挤眉弄眼的表情,劳资真想说,这帮畜生 路漫漫其修远兮,吾将上下而求索! github:https://github.com/youzhibing 码云(gitee):https://gitee.com/youzh

杂谈篇之我是怎么读源码的

读源码的经历 刚参加工作那会,没想过去读源码,更没想过去改框架的源码:总想着别人的框架应该是完美的.万能的,应该不需要改:另外即使我改了源码,怎么样让我的改动生效了? 项目中引用的不还是没改的jar包吗.回想起来觉得那时候的想法确实挺…… 工作了一年多之后准备跳槽了,开始了一轮的面试,其中有几个面试官就问到了相关的源码问题:ArrayList.HashMap的底层实现,spring.mybatis的相关源码.问源码的面试一般就是回去等消息,然后就没然后了. 那时候开始意识到,源码这东西在之前的工

[一起读源码]走进C#并发队列ConcurrentQueue的内部世界

决定从这篇文章开始,开一个读源码系列,不限制平台语言或工具,任何自己感兴趣的都会写.前几天碰到一个小问题又读了一遍ConcurrentQueue的源码,那就拿C#中比较常用的并发队列ConcurrentQueue作为开篇来聊一聊它的实现原理. 话不多说,直奔主题. 要提前说明下的是,本文解析的源码是基于.NET Framework 4.8版本,地址是:https://referencesource.microsoft.com/#mscorlib/system/Collections/Concur

跟大佬一起读源码:CurrentHashMap的扩容机制

并发编程——ConcurrentHashMap#transfer() 扩容逐行分析 前言 ConcurrentHashMap 是并发中的重中之重,也是最常用的数据结果,之前的文章中,我们介绍了 putVal 方法.并发编程之 ConcurrentHashMap(JDK 1.8) putVal 源码分析.其中分析了 initTable 方法和 putVal 方法,但也留下了一句话: 这篇文章仅仅是 ConcurrentHashMap 的开头,关于 ConcurrentHashMap 里面的精华太多

iScroll学习笔记2--浅读源码

iscroll的架子是这样的 (function (window, document, Math){ var utils = (function (){ var me = {}; // 扩展一些常用的工具方法为me的方法 return me; }()); function IScroll(el, options){ // 初始化一些属性和状态 } IScroll.prototype = { constructor: IScroll, // 主体方法都在这里 } }(window, documen

读源码之RESideMenu

RESideMenu是github上比较出名的一个开源库,主要是实现侧滑菜单,现在有三千多个star了.效果如下. 据说创意来源于dribbble的一个设计,还是比较好看的.感兴趣的可以去github上搜residemenu,地址就不贴了,选择这个开源库主要原因是带大家学习一下创建一个自定义的viewcontroller容器是怎样的步骤.其实视图容器大家每天都在用,什么navigationcontroller,tabbarcontroller,pageviewcontroller,可能第三个大家