羊咩咩队 徐娆
一.git的学习与使用
1.GET下载版本Git安装包
2.下载安装
3.在需要上传GIT的文件夹内右键

4.建立Git仓库,运行命令:
$ git init

我们可以看到文件夹中多了一个.git的文件夹,这个文件夹就是Git用来管理我们的仓库的,不要随意地改动它。
5.将文件放入Git仓库
$ git add FNumber.js //将文件放入缓存区

$ git commit -m "test" //放入本地仓库 引号中的内容是本次版本的标注
$ git log //查看仓库

上传成功!
二、Node.js和jasmine 的安装与环境配置
1.下载最新版本的node.js并安装
2.打开CMD命令行
一般来说安装了nodejs之后会自动安好npm,我们需要在命令行中安装Jasmine的框架
$ npm install jasmine-node -g
使用NPM命令安装库时,遇到 npm ERR! fetch failed https://registry.npmjs.org/xxx的问题
jasmine 框架的使用
在需要建立项目的文件夹调出命令行或 git bash
$ jasmine init //初始化框架
我们可以看到出现了一个spec的目录

打开目录,我们发现只有一个support 文件夹

于是我们回到命令行,建立一个更完整的框架
$ jasmine examples

Good!现在我们有整个的框架了
我们可以在webstorm 里直接打开刚才的文件夹,框架已经为我们写好了一些测试

直接使用它!
$ jasmine

五个测试全部通过√
是时候写我们自己的代码与测试框架了!
三、Frequncy Number 编程练习


首先我们回到上文建立的框架中,修改框架。
留下最简单的模版,写一个最简单的测试:输入空,返回空

在js脚本中写出它的实现

使用module的exports 方法把它暴露出来
运行测试

成功通过一个测试
继续实现其他的用例
测试代码:
describe("F Number", function() {
var FNumber= require("../../lib/jasmine_examples/FNumber");
it("should return space", function() {
var string = FNumber('hi');
expect(string).toEqual('hi 1');
});
it("should return space", function() {
var string = FNumber('hello word');
expect(string).toEqual('hello 1\r\nword 1');
});
it("should return space", function() {
var string = FNumber('love me love my dog');
expect(string).toEqual('love 2\r\nme 1\r\nmy 1\r\ndog 1');
});
it("should return space", function() {
var string = FNumber('it was the age of wisdom it was the age of foolishness it is');
expect(string).toEqual('it 3\r\nwas 2\r\nthe 2\r\nage 2\r\nof 2\r\nwisdom 1\r\nfoolishness 1\r\nis 1');
});
});
功能实现代码:
var read = function (wordArray ){
return wordArray .reduce((array, word) =>{
let entry = array.find((e) => e.word === word);
if(entry){
entry.count++;
}
else{
array.push({word: word,count: 1});
}
return array;
}, []);
};
var split = function (words){
return words.split(/\s+/);
}
var sort = function (groupWords) {
groupWords .sort((x, y) => y.count - x.count);
}
var combie = function (groupWords) {
return groupWords.map((e) => format(e.word, e.count)).join('\r\n');
}
var format = function (words, count){
return words + ' ' + count;
}
function FNumber(words){
if(words !== ''){
let intArray = split(words);
let groupWords = read(intArray);
sort(groupWords);
return combie(groupWords);
}
return '';
}
module.exports = FNumber;
运行测试

通过~
add到本地仓库

上传到仓库


网友评论