Issue #10721 has been updated by Nobuyoshi Nakada.


You can use `assert_raise_with_message`.

~~~diff
diff --git a/test/net/http/test_http.rb b/test/net/http/test_http.rb
index 4d82fd7..4f5093d 100644
--- a/test/net/http/test_http.rb
+++ b/test/net/http/test_http.rb
@@ -1,5 +1,6 @@
 # coding: US-ASCII
 require 'test/unit'
+require 'minitest/mock'
 require 'net/http'
 require 'stringio'
 require_relative 'utils'
@@ -189,11 +190,12 @@ class TestNetHTTP < Test::Unit::TestCase
   end
 
   def test_failure_message_includes_failed_domain_and_port
-    begin
-      Net::HTTP.get(URI.parse("http://doesnotexist.bogus"))
-      fail "should have raised"
-    rescue => e
-      assert_includes e.message, "doesnotexist.bogus:80"
+    uri = URI.parse("http://doesnotexist.bogus")
+    assert_raise_with_message(RuntimeError, /doesnotexist.bogus:80/) do
+      failure_message = "SocketError: getaddrinfo: Name or service not known"
+      TCPSocket.stub :open, proc {raise failure_message} do
+        Net::HTTP.get(uri)
+      end
     end
   end
 
~~~

----------------------------------------
Misc #10721: Failing test because of DNS server
https://bugs.ruby-lang.org/issues/10721#change-50950

* Author: Anthony Crumley
* Status: Assigned
* Priority: Normal
* Assignee: Eric Wong
----------------------------------------
The following test is failing:

[ 5/52] TestNetHTTP#test_failure_message_includes_failed_domain_and_port = 0.32 s
  1) Failure:
TestNetHTTP#test_failure_message_includes_failed_domain_and_port [/vagrant/test/net/http/test_http.rb:196]:
Expected "should have raised" to include "doesnotexist.bogus:80".

The problem is caused by my ISP, Charter Cable, returning a search results page instead of a failed DNS lookup for http://doesnotexist.bogus.  If I change my DNS server setting on my computer to use Google DNS then the test passes.  

The attached patch uses a MiniTest stub to produce the DNS failure which results in the expected error message regardless of how the machine's DNS server responds to http://doesnotexist.bogus.

Thanks for everything you all do,

Anthony

---Files--------------------------------
dns_lookup.patch (1.06 KB)
dns_lookup_v2.patch (1.18 KB)


-- 
https://bugs.ruby-lang.org/