   end
 
   test "c helper multiple modules" do
+    assert_raise UndefinedFunctionError, "undefined function: Helpers_test_module.run/0", fn ->
+      Helpers_test_module.run
+    end
+
     File.write! "test-module-code.ex", test_module_code <> "\n" <> another_test_module
     assert c("test-module-code.ex") |> Enum.sort == [Another_test_module,Helpers_test_module]
     assert Helpers_test_module.run == :run

  end

  test "c helper list" do
    File.write! "test-module-code-1.ex", test_module_code
    File.write! "test-module-code-2.ex", another_test_module
    assert c(["test-module-code-1.ex", "test-module-code-2.ex"]) |> Enum.sort

  end

  test "l helper" do
    assert_raise UndefinedFunctionError, "undefined function: Helpers_test_module.run/0", fn ->
      Helpers_test_module.run
    end

    assert l(:non_existent_module) == {:error,:nofile}

    File.write! "test-module-code.ex", test_module_code
    assert c("test-module-code.ex") == [Helpers_test_module]
    assert Helpers_test_module.run == :run

    File.write! "test-module-code.ex", "defmodule Helpers_test_module do end"
    # FIXME: is there another way to compile a file without loading its module?
    System.cmd "elixirc test-module-code.ex"

    assert l(Helpers_test_module) == {:module, Helpers_test_module}
    assert_raise UndefinedFunctionError, fn ->
      Helpers_test_module.run
    end
  after
    File.rm "test-module-code.ex"
    File.rm! "Elixir.Helpers_test_module.beam"
