简单Elixir游戏服设计葡京游戏网址- 给table增加测试代码

测试驱动,先simple_table_test.exs 里扩张测试呢。

转载请讲明来源:http://www.cnblogs.com/zhanggui/p/6955742.html

此时此刻想到的这么多,假诺遗漏后续扩大, 写测试代码比业务代码仍旧难,

二〇一七年二月6日凌晨的138分钟,是属于WWDC2017的。

好处是提前想下模块的api接口。

是因为时间问题,没有熬夜看,所以早上四起趁着商家不太忙就看了看。全体的内容从未太多变化,仍然是苹果的主产品,不过这一次的one
more thing 是HomePod,依然挺令人期望的。

像自家如此一晃写那么多测试,其实也不对,反馈周期太长,测试驱动就没乐趣了,

接下去自己将从大会的重中之重内容和团结的感触五个方面举行写作。这里只是简单的牵线,更多详情可以访问Apple.com翻开更多。

与此同时代码调整或者导致测试要重新调整。

 

(这里只是示例,未来就不这么搞了)

内容概览

其它想了下, 像table这样的整装(意思是和谐调用其他模块)模块,

开场以小录像的办法发挥了苹果对人们日常生活的影响之大。AppStore
Server服务异常,导致人们的生存和办事等等各类方面都碰着了很大的震慑。挺好玩的小视频,推荐我们观赏一下,很有创意。

为了方便测试,依旧应该分出2种不同风格的api。

下一场就是Cook的开场,介绍了明日登记开发者的人口:16
million;此次插手大会的食指:5300人;其中有多数的学生开发者等等。这里还特意介绍了Yuma和Masaca:

一种是重返 {:ok, table} 和 {:error, reason}的,对接逻辑

葡京游戏网址 1

一种是彻头彻尾操作table的, 方便测试用。

Yuma来自澳大汉诺威,2019年10岁,是苹果开发者中小小的的开发者。他从6岁开头编程,如今曾经有5款app上架Appstore。另一位是来自东瀛的82岁的Masako,到了晚年才接触开发,自己也有一些app上架AppStore。

上测试代码先,测试肯定会败北

接下去就围绕了六点上马了这一次WWDC的始末。这六点包括:

葡京游戏网址 2葡京游戏网址 3

1.tvOS

 test "开局:少于2个人的时候不能", %{table: table, player1: player1} do
       assert {:error, ErrorMsg.player_not_enough} == table |> SimpleTable.add_seat |> SimpleTable.start(player1)
  end

  test "开局:正在玩中不能", %{table: table, player1: player1} do
    assert {:error, ErrorMsg.can_not_start_when_playing} == table |> SimpleTable.set_playing |> SimpleTable.start(player1)
  end

  test "开局: 准备阶段且人数至少2, 且只有房主能开局", %{table: table, player1: player1, player2: player2} do
       table = table |> SimpleTable.set_creator(player1) 
                     |> SimpleTable.add_seat(player1) 
                     |> SimpleTable.add_seat(player2) 
      assert {:error, ErrorMsg.just_creator_can_start} == table |> SimpleTable.start(player2)
      assert {:ok, new_table} = table |> SimpleTable.start(player1)
      assert table |> SimpleTable.is_playing?
  end

  test "解散:正在玩中不能", %{table: table, player1: player1} do
    assert {:error, ErrorMsg.can_not_dismiss_when_playing} == table |> SimpleTable.set_playing |> SimpleTable.dismiss(player1)
  end

  test "解散:准备阶段只有房主可以", %{table: table, player1: player1, player2: player2} do
     table = table |> SimpleTable.set_creator(player1)
     assert {:error, ErrorMsg.just_creator_can_dismiss} == table |> SimpleTable.dismiss(player2)
     assert {:ok, new_table} = table |> SimpleTable.dismiss(player1) 
     assert new_table |> SimpleTable.is_dismiss?
  end 

  test "加入:正在玩中不能(以后支持?)", %{table: table, player1: player1} do
    assert {:error, ErrorMsg.can_not_join_new_player_when_playing} == table |> SimpleTable.set_playing |> SimpleTable.join(player1)
  end

  test "加入:准备阶段可以", %{table: table, player1: player1} do
    assert {:ok, _new_table} = table |> SimpleTable.join(player1) 
  end

  test "加入: 重复不可以", %{table: table, player1: player1} do
    assert {:error, ErrorMsg.repeated_join} == table |> SimpleTable.add_seat(player1) |> SimpleTable.join(player1)
  end

  test "退出:正在玩中不能(以后支持?)", %{table: table, player1: player1} do
    assert {:error, ErrorMsg.can_not_quit_when_playing} == table |> SimpleTable.set_playing |> SimpleTable.quit(player1)
  end

  test "退出:房主不能(以后支持?)", %{table: table, player1: player1} do
    assert {:error, ErrorMsg.can_not_quit_when_creator} == table |> SimpleTable.set_creator(player1) |> SimpleTable.quit(player1)
  end

  test "测试发牌", %{table: table, player1: player1, player2: player2} do
      cards = [{1, 1}, {1, 2}, {1, 3}, {1, 4}, {1, 5}, {1, 6}]
      table = table |> SimpleTable.set_cards(cards)
                    |> SimpleTable.add_seat(player1)
                    |> SimpleTable.add_seat(player2)
                    |> SimpleTable.init_deal
      assert [{1, 1}, {1, 2}] == table |> SimpleTable.find_seat(player1) |> Seat.get_cards
      assert [{1, 3}, {1, 4}] == table |> SimpleTable.find_seat(player2) |> Seat.get_cards
  end

  test "补牌: 非玩中不能", %{table: table, player1: player1} do
     assert {:error, ErrorMsg.can_not_deal_when_not_playing} == table |> SimpleTable.deal_one(player1)
  end

  test "补牌: 已经翻牌不能", %{table: table, player1: player1} do
     seat = Seat.init(player1) |> Seat.open
     assert {:error, ErrorMsg.can_not_make_up_when_open} == table |> SimpleTable.update_seat(seat) |> SimpleTable.make_up(player1)
  end

  test "补牌: 已经三张了不能再补", %{table: table, player1: player1} do
     seat = Seat.init(player1) |> Seat.add_cards([1, 2, 3]) 
     assert {:error, ErrorMsg.can_not_make_up_when_full} == table |> SimpleTable.update_seat(seat) |> SimpleTable.make_up(player1)
  end

  test "翻牌: 不是天公牌不能", %{table: table, player1: player1} do
    seat = Seat.init(player1) |> Seat.add_cards([{1, 2}, {1, 5}])
    assert {:error, ErrorMsg.just_tian_gong_can_open} == table |> SimpleTable.update_seat(seat) |> SimpleTable.open(player1)
  end

  test "翻牌: 已经翻过了不能", %{table: table, player1: player1} do
    seat = Seat.init(player1) |> Seat.open
    assert {:error, ErrorMsg.repeated_open} == table |> SimpleTable.update_seat(seat) |> SimpleTable.open(player1)
  end

2.Apple Watch

simple_table_test.exs

3.Mac

回头我们补上代码,让测试通过。

4.iOS

实际上数据操作的测试和逻辑操作的测试分为2个测试文件会更清晰点,

5.iPad

本身就不做了,仍旧用1个文本。

6.HomePod

 

接下去就大概介绍一下。

 

01:tvOS

 

根本介绍了amazon来到了Apple 电视机。

葡京游戏网址 4 

葡京游戏网址 5

眼前tvOS已经与50多家内容商合作,用户可以轻松收看自己喜欢的内容。同时,与Amazon合作,未来再Amazonvideo上看的情节都得以在tvOS上收看。

 

02:Apple Watch

 

watchOS 4系统到来,包括了Siri
Face、Workout、Pool
Swim、和跑步机同步数据(利用NFC)、卡片布局等等。而且新增了三款玩具总动员人物表盘。 葡京游戏网址 6 葡京游戏网址 7

葡京游戏网址 8

下图是辅助NFC同步数据的厂商:

葡京游戏网址 9

 

03:Mac

 

Mac重要介绍了macOS High
Sierra
:

葡京游戏网址 10 

收下来说了Safari是社会风气上最快的桌面浏览器:

葡京游戏网址 11

而且JavaScript perfromance比Chrom快80%:

葡京游戏网址 12

 而且还存有智能跟踪防御功效:

葡京游戏网址 13

还具有Autoplay Blocking功能。

还有Mail的Search Top Hits和Full-screen Split View:

葡京游戏网址 14

葡京游戏网址 15

除此以外Photo的功能也越发强劲,包括人脸识别和编辑。尤其是图形的编纂效率:

葡京游戏网址 16

期间还拿PhotoShop CC做相比。还包括了Metal 2和ML:

 葡京游戏网址 17

葡京游戏网址 18

再有专门为AR效用设计的的STEAM VR SDK:

 葡京游戏网址 19

接下去是Mac的价钱:

葡京游戏网址 20

葡京游戏网址 21

还有新品:iMac Pro:

葡京游戏网址 22

葡京游戏网址 23

葡京游戏网址 24

 期间还采纳新的iMac展现了一款VR游戏,效果很逼真。在不久的未来,大家就足以选择STEAM
VR SDK举办VR开发。

 

04:iOS

 

率先就升级率和Android做了相比:

葡京游戏网址 25

实际上也可以精通,因为苹果系统只有一家,而Android光国内就有HUAWEI、一加、Nokia等等厂商,所以升级并不是google说升级就提升的。

 接下来就是iOS11的介绍:

席卷message同步iCloud、通过message举办转账、Apple Pay 的person to person
payment、siri更加智能、Camera高达两倍的压缩率,收缩占用空间、可以从Live
Photo得到指定的图样、重新定义Control
Center、siri的机器学习、map的室内导航以及速度限制和行车指南、Do Not
Disturb While Driving情势、Home基特(Kit)使用Siri控制、airplay 2、新的AirPlay 2
audio API、Apple Music能够查看朋友正在听取的音乐、Music基特API等等。 葡京游戏网址 26

葡京游戏网址 27

葡京游戏网址 28 

此地也有国人一直关注的活动网络开关,也就是说能够绝不打开设置,直接在Control
Center即可关闭移动数据网络。

接下去还介绍的全新的也是世界上最好的App平台:AppStore:

葡京游戏网址 29

每一周有500 Million的访问量:

葡京游戏网址 30

 每一日180 比尔(Bill)ion的下载量:

葡京游戏网址 31

 还有70 Billion的Paid to Developers:

葡京游戏网址 32

 下边是全新Appstore实图:

葡京游戏网址 33

葡京游戏网址 34

 其余还有Vision API:

葡京游戏网址 35

此处拿小米7和Google、三星做了一个比照:

葡京游戏网址 36

 还有Augmented Reality:

葡京游戏网址 37

葡京游戏网址 38

葡京游戏网址 39 

此地演示了一个Demo,可以从上图看到。

还出现说法了Wingnut AR:

葡京游戏网址 40

葡京游戏网址 41

very Fantastic!

再有专门为天朝设计的效应:

葡京游戏网址 42

不言而喻iOS11中的VR是很值得我愿意的。

 

05:iPad

 

三星平板这里就不多介绍了,直接看下边的图:

边框更窄:

葡京游戏网址 43

葡京游戏网址 44

葡京游戏网址 45

还有Apple Pencil:

葡京游戏网址 46

葡京游戏网址 47

葡京游戏网址 48

葡京游戏网址 49

葡京游戏网址 50

葡京游戏网址 51

葡京游戏网址 52

多任务:

葡京游戏网址 53

New App Switcher:

葡京游戏网址 54

 Files:协理各个云:百度,微云等等。

葡京游戏网址 55

葡京游戏网址 56

葡京游戏网址 57

葡京游戏网址 58

 关于价格:

葡京游戏网址 59

接下去就是one more thing(乔布斯(乔布斯)),Cook叫它:one last thing:

 

06:HomePod

 

这次WWDC的压轴:

葡京游戏网址 60

价格:

葡京游戏网址 61

它的叙述可以用下边三句话概括:

1.Breakthrough home speaker

2.Spatial awareness

3.Musicologist

HomePod是一款效用强大的喇叭,听起来非常棒,适用于此外地方。它与Apple
Music一起,可轻松访问世界上的音乐。而这所有的实现通过与Siri.1的自然语音交互举办控制。它拔取无缝的3D网格覆盖,采纳了A8芯片,而且可以从多方位进行音乐播放和话音接收。

或者你会担心您和HomePod的对话被窃听,为了爱抚因而,苹果加密了对话的内容。

本条强大的组合音响也将在1九月在US、UK以及Australia发行。

如上便是此次大会的显要内容。

 

感受

以下仅代表个人观点:

从此次大会来看,苹果将会更加增长Siri的功能,让Siri更加强大。

 

在智能家居方面,苹果也会愈加发展,这里的HomePod就是很好的例子。

 

另外,VR未来会愈发火,苹果当然不甘于把这么些蛋糕让给别人,自己一定要有所作为。STEAM
VR
SDK的产出以及WWDC下面对VR内容的牵线也充足表达了这或多或少。VR值得期待,苹果在这么些方向一度付出发力。

 

愿意苹果生产更多产品,让智能家居更加彰显。最好也能在天朝使用。

 

苹果的出品做得都很精致,援助Apple。希望有更多的One more thing!