0
最佳做法是不要使用@instance
變量並使用let(:object)
。但是如何編寫每個步驟需要先前狀態但不是清理狀態的調用序列的測試。測試交互請求序列
我想這樣寫代碼:
describe "intearction" do
let(:user1) { ... }
let(:user2) { ... }
it "request" do
get "/api/v1/request", {user2}, token(user1)
expect(...).to ...
end
it "confirm" do
get "/api/v1/confirm", {user1}, token(user2)
expect(...).to ...
end
end
但是,這是行不通的。它可能只是像下面這樣工作:
describe "intearction" do
let(:user1) { ... }
let(:user2) { ... }
it "all tests" do
# request
get "/api/v1/request", {user2}, token(user1)
expect(...).to ...
# confirm
get "/api/v1/confirm", {user1}, token(user2)
expect(...).to ...
end
end
的it
變得無法使用和測試的名稱成爲意見或看跌期權來安慰。 rspec子系統失去了它的目的。使用@instance
變量是不好的做法,是否有任何類似let
的定義函數不會爲每個測試而是每個測試組創建新的簡單變量?
序列和api不是第一年。你測試序列的做法是什麼?