Тестирование запросов с перенаправлениями в RSpec

Если вы идете по маршруту LINQ.js , вы можете сделать это следующим образом:

var aggregatedObject = Enumerable.From(dataArray)
        .GroupBy("$.category", null,
                 function (key, g) {
                     return {
                       category: key,
                       hits: g.Sum("$.hits"),
                       bytes: g.Sum("$.bytes")
                     }
        })
        .ToArray();

Рабочая демонстрация с помощью фрагментов стека:

var dataArray = [ 
  { category: "Search Engines", hits: 5, bytes: 50189 },
  { category: "Content Server", hits: 1, bytes: 17308 },
  { category: "Content Server", hits: 1, bytes: 47412 },
  { category: "Search Engines", hits: 1, bytes: 7601  },
  { category: "Business",       hits: 1, bytes: 2847  },
  { category: "Content Server", hits: 1, bytes: 24210 },
  { category: "Internet ",      hits: 1, bytes: 3690  },
  { category: "Search Engines", hits: 6, bytes: 613036 },
  { category: "Search Engines", hits: 1, bytes: 2858  } 
];

var aggregatedObject = Enumerable.From(dataArray)
        .GroupBy("$.category", null,
                 function (key, g) {
                     return {
                       category: key,
                       hits: g.Sum("$.hits"),
                       bytes: g.Sum("$.bytes")
                     }
        })
        .ToArray();

console.log(aggregatedObject);

Кроме того, вы можете найти дополнительную информацию о группе linqjs с помощью суммы

0
задан Carl Edwards 17 January 2019 в 14:03
поделиться

2 ответа

Вы можете проверить, что сообщение было создано и что пользователь был перенаправлен, если параметры верны. И если у вас есть какая-либо проверка в модели Post, будет хорошей идеей проверить недействительные параметры:

RSpec.describe 'PostsController', type: :request do
  describe 'POST #create' do
    context 'with valid params' do
      it 'creates a new post' do
        expect { post posts_path, params: { post: valid_attributes } }.to change(Post, :count).by(1)        
        expect(response).to redirect_to post_path(Post.last)
      end
    end

    context 'with invalid params' do
      it 'does not create a new post' do
        expect { post posts_path, params: { post: invalid_attributes } }.not_to change(Post, :count)
        expect(response).to have_http_status 200
      end
    end
  end
end
0
ответ дан Vasilisa 17 January 2019 в 14:03
поделиться

Ваш код ответа будет 302, так как сообщение успешно создается. В приведенном вами примере кода вы не получите 201 обратно. Вы можете проверить, что вы не получили 201

expect(response).to_not have_http_status(201).

. Создание новой модели Post не возвращает код состояния HTTP. Создает строку в базе данных. Если вы хотите убедиться, что сообщение было создано, вы можете проверить, что количество сообщений равно 0 в начале теста и 1 в конце.

0
ответ дан keoghpe 17 January 2019 в 14:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: