> On 20 Oct 2020, at 4:13 pm, Tamás Gulácsi <tgulacs...@gmail.com> wrote:
> 
> Use bytes.Buffer or strings.Builder directly - no need for the bufio.Writer.
> bufio.Writer only speeds up writing by calling the underlying Writer less, 
> with bigger slices.
> Here you Write into a memory, just as bufio.Writer.
> 
> Also, you can save some allocations by creating the buffer once outside of 
> the loop,
> and Reset() it in each cycle before calling handleCommand.

Thank you, appreciate the suggestions.

> 
> 
> amits...@gmail.com a következőt írta (2020. október 20., kedd, 6:03:31 UTC+2):
> Hi all, Consider the following test configuration: 
> 
> 
> func TestHandleCommand(t *testing.T) { 
> 
> type expectedResult struct { 
> output string 
> err error 
> } 
> type testConfig struct { 
> args []string 
> result expectedResult 
> } 
> 
> testConfigs := []testConfig{ 
> testConfig{ 
> args: []string{"-h"}, 
> result: expectedResult{ 
> err: nil, 
> output: `Expected output`, 
> }, 
> }, 
> } 
> 
> Then, I do this: 
> 
> 
> for _, tc := range testConfigs { 
> byteBuf := new(bytes.Buffer) 
> w := bufio.NewWriter(byteBuf) 
> 
> err := handleCommand(w, tc.args) 
> if tc.result.err == nil && err != nil { 
> t.Errorf("Expected nil error, got %v", err) 
> } 
> 
> if tc.result.err != nil && err.Error() != tc.result.err.Error() { 
> t.Errorf("Expected error %v, got %v", tc.result.err, err) 
> } 
> 
> if len(tc.result.output) != 0 { 
> w.Flush() 
> gotOutput := byteBuf.String() 
> if tc.result.output != gotOutput { 
> t.Errorf("Expected output to be: %v, Got: %v", 
> tc.result.output, gotOutput) 
> } 
> } 
> } 
> } 
> 
> The above pattern works for me since the function may return an error 
> and/or it may have something it writes to the provided writer, w. 
> 
> Is there a more concise way to write this? 
> 
> 
> 
> Thanks, 
> Amit. 
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "golang-nuts" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to golang-nuts+unsubscr...@googlegroups.com 
> <mailto:golang-nuts+unsubscr...@googlegroups.com>.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/golang-nuts/2759fea4-a3d6-42ee-b3e4-2c0ac208f2b9n%40googlegroups.com
>  
> <https://groups.google.com/d/msgid/golang-nuts/2759fea4-a3d6-42ee-b3e4-2c0ac208f2b9n%40googlegroups.com?utm_medium=email&utm_source=footer>.

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/A3A40B8E-AF4F-43EB-9B75-0AA0464E7E09%40gmail.com.

Reply via email to