Unit Testing tls.LoadX509KeyPair fails if no certs providedIn Go,how to get test environment at run time?Mock functions in GoGood unit testing in GoGolang mocking functions for http handler testsUnit testing os.File.Write callHow would you unit test a method whose only purpose to make a Database call?Unit testing tls clientUnit Testing Strategy for Database Connection get in GolangApproaches to testing negative scenarios in Gowrite Golang unit test for function that expects a key pressed to continueMocking with pointer reference in function parameters for unit test
Reason why a kingside attack is not justified
Make a Bowl of Alphabet Soup
Does capillary rise violate hydrostatic paradox?
What do the positive and negative (+/-) transmit and receive pins mean on Ethernet cables?
Exposing a company lying about themselves in a tightly knit industry (videogames) : Is my career at risk on the long run?
Weird lines in Microsoft Word
Why can't I get pgrep output right to variable on bash script?
Offset in split text content
Are hand made posters acceptable in Academia?
C++ lambda syntax
How to preserve electronics (computers, ipads, phones) for hundreds of years?
Writing in a Christian voice
Why is participating in the European Parliamentary elections used as a threat?
PTIJ: Which Dr. Seuss books should one obtain?
Can you take a "free object interaction" while incapacitated?
Why is indicated airspeed rather than ground speed used during the takeoff roll?
How do you say "Trust your struggle." in French?
Highest stage count that are used one right after the other?
Air travel with refrigerated insulin
Asserting that Atheism and Theism are both faith based positions
How can I, as DM, avoid the Conga Line of Death occurring when implementing some form of flanking rule?
Rendered textures different to 3D View
Why is implicit conversion not ambiguous for non-primitive types?
"Marked down as someone wanting to sell shares." What does that mean?
Unit Testing tls.LoadX509KeyPair fails if no certs provided
In Go,how to get test environment at run time?Mock functions in GoGood unit testing in GoGolang mocking functions for http handler testsUnit testing os.File.Write callHow would you unit test a method whose only purpose to make a Database call?Unit testing tls clientUnit Testing Strategy for Database Connection get in GolangApproaches to testing negative scenarios in Gowrite Golang unit test for function that expects a key pressed to continueMocking with pointer reference in function parameters for unit test
cert, err := tls.LoadX509KeyPair(os.Getenv("CERT"), os.Getenv("KEY"))
if err != nil
return err
I want to write a unit test for a function that contains this snippet of code. However, my test environment will never have any content in os.Getenv("CERT")
/os.Getenv("KEY")
. This makes the code(tls.LoadX509KeyPair()
) return an error, which doesn't let me test the function.
How should I go about mocking/modifying this snippet?
go tls1.2
add a comment |
cert, err := tls.LoadX509KeyPair(os.Getenv("CERT"), os.Getenv("KEY"))
if err != nil
return err
I want to write a unit test for a function that contains this snippet of code. However, my test environment will never have any content in os.Getenv("CERT")
/os.Getenv("KEY")
. This makes the code(tls.LoadX509KeyPair()
) return an error, which doesn't let me test the function.
How should I go about mocking/modifying this snippet?
go tls1.2
1
Refactor. If the code under test relies on an environment that isn't reproduced under test, either you can't test it or you have to refactor it.
– Adrian
Mar 7 at 20:30
You mean using os.Getenv() in go code is a bad practice?
– jazz
Mar 7 at 21:15
No, there's nothing wrong with it. I mean the broader sense of "environment" - the environment variables, local files (e.g. certificates), etc.
– Adrian
Mar 7 at 21:28
add a comment |
cert, err := tls.LoadX509KeyPair(os.Getenv("CERT"), os.Getenv("KEY"))
if err != nil
return err
I want to write a unit test for a function that contains this snippet of code. However, my test environment will never have any content in os.Getenv("CERT")
/os.Getenv("KEY")
. This makes the code(tls.LoadX509KeyPair()
) return an error, which doesn't let me test the function.
How should I go about mocking/modifying this snippet?
go tls1.2
cert, err := tls.LoadX509KeyPair(os.Getenv("CERT"), os.Getenv("KEY"))
if err != nil
return err
I want to write a unit test for a function that contains this snippet of code. However, my test environment will never have any content in os.Getenv("CERT")
/os.Getenv("KEY")
. This makes the code(tls.LoadX509KeyPair()
) return an error, which doesn't let me test the function.
How should I go about mocking/modifying this snippet?
go tls1.2
go tls1.2
edited Mar 7 at 20:24
Pikachu the Purple Wizard
2,02761329
2,02761329
asked Mar 7 at 20:23
jazzjazz
72
72
1
Refactor. If the code under test relies on an environment that isn't reproduced under test, either you can't test it or you have to refactor it.
– Adrian
Mar 7 at 20:30
You mean using os.Getenv() in go code is a bad practice?
– jazz
Mar 7 at 21:15
No, there's nothing wrong with it. I mean the broader sense of "environment" - the environment variables, local files (e.g. certificates), etc.
– Adrian
Mar 7 at 21:28
add a comment |
1
Refactor. If the code under test relies on an environment that isn't reproduced under test, either you can't test it or you have to refactor it.
– Adrian
Mar 7 at 20:30
You mean using os.Getenv() in go code is a bad practice?
– jazz
Mar 7 at 21:15
No, there's nothing wrong with it. I mean the broader sense of "environment" - the environment variables, local files (e.g. certificates), etc.
– Adrian
Mar 7 at 21:28
1
1
Refactor. If the code under test relies on an environment that isn't reproduced under test, either you can't test it or you have to refactor it.
– Adrian
Mar 7 at 20:30
Refactor. If the code under test relies on an environment that isn't reproduced under test, either you can't test it or you have to refactor it.
– Adrian
Mar 7 at 20:30
You mean using os.Getenv() in go code is a bad practice?
– jazz
Mar 7 at 21:15
You mean using os.Getenv() in go code is a bad practice?
– jazz
Mar 7 at 21:15
No, there's nothing wrong with it. I mean the broader sense of "environment" - the environment variables, local files (e.g. certificates), etc.
– Adrian
Mar 7 at 21:28
No, there's nothing wrong with it. I mean the broader sense of "environment" - the environment variables, local files (e.g. certificates), etc.
– Adrian
Mar 7 at 21:28
add a comment |
1 Answer
1
active
oldest
votes
This works by defining vars for the certFile
and keyFile
and then overriding them in the test environment.
//..
var certFile = os.Getenv("CERT")
var keyFile = os.Getenv("KEY")
//...
cert, err := tls.LoadX509KeyPair(certFile, keyFile)
if err != nil
return err
Follow the below link to see how to override the vars in a test env.
In Go,how to get test environment at run time?
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55052235%2funit-testing-tls-loadx509keypair-fails-if-no-certs-provided%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
This works by defining vars for the certFile
and keyFile
and then overriding them in the test environment.
//..
var certFile = os.Getenv("CERT")
var keyFile = os.Getenv("KEY")
//...
cert, err := tls.LoadX509KeyPair(certFile, keyFile)
if err != nil
return err
Follow the below link to see how to override the vars in a test env.
In Go,how to get test environment at run time?
add a comment |
This works by defining vars for the certFile
and keyFile
and then overriding them in the test environment.
//..
var certFile = os.Getenv("CERT")
var keyFile = os.Getenv("KEY")
//...
cert, err := tls.LoadX509KeyPair(certFile, keyFile)
if err != nil
return err
Follow the below link to see how to override the vars in a test env.
In Go,how to get test environment at run time?
add a comment |
This works by defining vars for the certFile
and keyFile
and then overriding them in the test environment.
//..
var certFile = os.Getenv("CERT")
var keyFile = os.Getenv("KEY")
//...
cert, err := tls.LoadX509KeyPair(certFile, keyFile)
if err != nil
return err
Follow the below link to see how to override the vars in a test env.
In Go,how to get test environment at run time?
This works by defining vars for the certFile
and keyFile
and then overriding them in the test environment.
//..
var certFile = os.Getenv("CERT")
var keyFile = os.Getenv("KEY")
//...
cert, err := tls.LoadX509KeyPair(certFile, keyFile)
if err != nil
return err
Follow the below link to see how to override the vars in a test env.
In Go,how to get test environment at run time?
answered Mar 7 at 23:07
jazzjazz
72
72
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55052235%2funit-testing-tls-loadx509keypair-fails-if-no-certs-provided%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
1
Refactor. If the code under test relies on an environment that isn't reproduced under test, either you can't test it or you have to refactor it.
– Adrian
Mar 7 at 20:30
You mean using os.Getenv() in go code is a bad practice?
– jazz
Mar 7 at 21:15
No, there's nothing wrong with it. I mean the broader sense of "environment" - the environment variables, local files (e.g. certificates), etc.
– Adrian
Mar 7 at 21:28