运行基本的rspec文件

时间:2017-01-05 13:56:10

标签: ruby-on-rails ruby rspec

我是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)

你能告诉我一些我错的地方吗?

2 个答案:

答案 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

但测试的结构应如下

  1. a(describe)里面可以有很多(它)(a(it)是测试的地方)
  2. 一个(描述)可以有更多(描述)里面或者可以有(上下文),这些同时有很多(它)。
  3. 在此链接中,我将保留文档Basic structure

    在这里,您可以看到测试的基本示例

    describe 'sum 2 + 2 equal 4' do
       it { expect(2 + 2).to eq(4)}
    end