Ich habe AJAX Anrufe von Rails UJS initiiert, die ich gerne testen würde. Insbesondere habe ich Rails UJS ajax-Ereignisse verwendet, um Fehler zu vermeiden.Stub Rails UJS/Ajax Antworten Status zu testen Antwort in Rspec/Capybara Feature-Test
Ich möchte sie testen, aber ich weiß nicht, wie rspec/Capybara sagen, „Stummel“ und übernehmen den Fehlercode
$("button").
on('ajax:error',function(event,xhr, status, error){
if(status == "timeout") {
var msg;
msg = Messenger().post({
message: "This is taking too long"
});
} else {
var msg;
msg = Messenger().post({
message: "it seems there is a bug. Please try again."
});
};
});
Ich mag würde so etwas wie die folgenden Funktionen ausführen:
describe "test returning error message", js: true do
it "should be successful" do
visit deal_page_path(deal)
first('a.button').click
stub(:xhr.status) = "timeout"
expect(page).to have_content('This is taking too long')
end
end
Wie geht das?
Hinweis: Die Ajax-Anfragen sind intern, sie gehen nicht an API oder Dienste Dritter (wie Facebook für Ex).
danke, ich war über puffung billy gestolpert. aber es schien mehr Fokus auf http als stubbing eine Schiene Ujs Ajax Modal. Kann ich das mit puffendem billy machen? – Mathieu
@Mathieu. Sie möchten die Statusantwort auf eine http-Anfrage vortäuschen, das ist genau das, was Sie mit puffing billy erreichen können –
es hat funktioniert. – Mathieu