如何在 irb
中调用并测试 .rb
文档里的代码
还清晰的认识到,有一种bug是“思维不够牛逼”导致的bug
啧啧啧 果然语言都仅仅是思维的工具而已,不管是哪种语言 啧啧啧
学自动化测试的过程中,再次认识到一件很牛的事情 : 不要一开始就追求完美,写一点,测试出错误,改代码修掉这部分发现的这一点错误,再写一点测试出其他错误,再修改足够kill这部分错误的代码即可
如此循环慢慢接近完美,才不会拖延啊兄弟!
大名鼎鼎的TDD!!!

不同的用户有不同接口的感悟
在controller里给不同用户写接口代码时,感觉“接口”就是一种“create data的rule” 详细按照业务规则写清楚就好了
嗯嗯 这是对“接口”的定义的新感悟 不知道以后会不会对它的理解更深刻
Testing 的上传png文档出bug
做5.9这最后一步的时候,发现跑测试出现bug

尝试把 fixture_file_upload 改成 Rack::Test::UploadedFile.new

不成功
再试 这次出动 “byebug” 代码 然而并没提供什么有用的info 唉
目前只能判断是 测试用的file没有正确的上传
尝试改成
file = Rack::Test::UploadedFile.new("#{Rails.root}/spec/fixtures/test-pic.png")
也没用 hmmm
不得不承认debug好上头,一晃神尝试了好多方法,完全没发现三小时过去了...真厉害...
最后没辙了,把file相关代码注解掉,发现testing跑的很顺利...果然是上传问题...
以后状态好再继续debug吧 现在先冲进度
过了一天,感觉没解决还是不爽,继续查一堆资料,总算搞定“如何上传fake file跑测试”
把原来的代码
it "PATCH /me" do
# 上传档案,请放一个图档在 spec/fixtures 目录下
file = fixture_file_upload("#{Rails.root}/spec/fixtures/rails.png", "image/png")
patch "/api/v1/me", params: { :auth_token => @user.authentication_token, :email => "test2@example.com", :avatar => file }
expect(response).to have_http_status(200)
expect(response.body).to eq( { :message => "OK" }.to_json )
@user.reload
expect(@user.email).to eq("test2@example.com")
expect(@user.avatar).not_to eq(nil)
end
改成这样 就“上传成功” 通过测试了!
it "PATCH /me" do
def file
{"image" => Rack::Test::UploadedFile.new(Rails.root.join('spec', 'fixtures', 'files', 'image.png'), 'image/png')}
end
# 上传档案,请放一个图档在 spec/fixtures 目录下
patch "/api/v1/me", params: { :auth_token => @user.authentication_token, :email => "test2@example.com", :avatar => :file }
expect(response).to have_http_status(200)
expect(response.body).to eq( { :message => "OK" }.to_json )
@user.reload
expect(@user.email).to eq("test2@example.com")
expect(@user.avatar).not_to eq(nil)
end

改动成这样就顺利上传了所谓的图片 测试通过了
一句话高度概括测试代码的重点
因需要易读懂导致测试代码常常很多行,但其实非常平铺直叙
就是 1. 建立测试资料 2.执行程序 3. 检查结果
突然的感悟 随手记录
人的梦想会随着年纪增长变化,而这并不是坏事
年纪小的时候,知道的事情很少,所以能想到的可以选择的事情也少,那时的梦想也是在“很窄的认知范围内”选择出的向往的事情,不一定真的适合自己
年纪大了,知道的事情多了,对世界的了解更广阔了,才更加可能在更多的选择范围内找到真正适合自己的事情去追求
所以当你发现自己“梦想在变化”这现象 可能并不代表着“之前的梦想都被抹杀了 好可惜 我要想办法把小时候的梦想都实现 不然太对不起自己了” 而更应该是觉得 “梦想随着年纪增长在变化呢 说明我真的有认认真真学习成长 对世界以及对自己的认识都更进一步啦”
如果梦想一直没有变化 往往说明你走的路一直很狭窄 接触的事物一直很有限 而且小时候认定的事情不代表就是真理就是必须去践行的事情
其实梦想在变化是值得恭喜的事情呢
网友评论