我是Ruby和RSpec的新手。我想创建一个非常简单的RSpec测试:
# test_spec.rb
require 'spec_helper'
describe TestController do
puts(Time.now)
end
但是当我以这种方式运行代码rspec test_spec.rb
时,我收到错误:
`<top (required)>': uninitialized constant TestController (NameError)
你能告诉我一些我错的地方吗?
答案 0 :(得分:3)
如果将类传递给 @NonNull
private InfiniteScrollListener createInfiniteScrollListener() {
return new InfiniteScrollListener(10, linearLayoutManager) {
@Override public void onScrolledToEnd(final int firstVisibleItemPosition) {
offset += 10;
final List<Purchase2> itemsLocal = loadMore(offset);
refreshView(recyclerView, new PurchaseMainTestAdapter(itemsLocal, R.layout.list_orders_layout, getApplicationContext(), emptyView), firstVisibleItemPosition);
}
};
}
private List<Purchase2> loadMore(int index){
progressBar.setVisibility(View.VISIBLE);
//add loading progress view
purchases.add(new Purchase2());
adapter.notifyItemInserted(purchases.size()-1);
OneViewApi apiService =
ApiClient.getClient().create(OneViewApi.class);
Call<Orders> call;
call = apiService.getPurchaseData(auth_token,index,10);
Log.d("Called url is:", call.request().url().toString());
call.enqueue(new Callback<Orders>() {
@Override
public void onResponse(Call<Orders> call, Response<Orders> response) {
if(response.isSuccessful()){
//remove loading view
purchases.remove(purchases.size()-1);
List<Purchase2> result = response.body().getPurchases();
if(result.size()>0){
//add loaded data
purchases.addAll(result);
}else{//result size 0 means there is no more data available at server
adapter.setMoreDataAvailable(false);
Toast.makeText(getApplicationContext(),"No More Data Available",Toast.LENGTH_LONG).show();
}
progressBar.setVisibility(View.GONE);
//should call the custom method adapter.notifyDataChanged here to get the correct loading status
}else{
Log.e("Item list"," Load More Response Error "+String.valueOf(response.code()));
}
}
@Override
public void onFailure(Call<Orders> call, Throwable t) {
Log.e("Item list"," Load More Response Error "+t.getMessage());
}
});
return purchases;
}
,RSpec会尝试创建该类的实例。如果指定的类不存在,则会出现错误。
您可以改为传递字符串:
describe
运行上述内容:
describe "my first test" do
it "does something" do
expect(1).to be_odd
end
end
答案 1 :(得分:2)
这个错误是因为在描述之后你需要一个带有描述的字符串而你没有引号就离开它。
describe '3pController' do
puts(Time.now)
end
但测试的结构应如下
在此链接中,我将保留文档Basic structure
在这里,您可以看到测试的基本示例
describe 'sum 2 + 2 equal 4' do
it { expect(2 + 2).to eq(4)}
end