0
Wie kann ich mit googletest eine Funktion testen, die auf Benutzereingaben über std :: cin angewiesen ist?Verwenden Sie googletest mit einer Funktion, die vom Benutzer über std :: cin eingegeben wird?
Für das Beispiel unten, ich bin auch immer Code suchen würde mir erlauben, „2 \ n“ zum std :: cin Stream hinzuzufügen, so dass die readUserInput() Funktion 2 in die Wertvariable liest und nicht erfordern irgendeine Eingabe vom Benutzer.
#include <iostream>
#include "gtest/gtest.h"
int readUserInput()
{
int value;
std::cout << "Enter a number: ";
std::cin >> value;
return value;
}
TEST(cin_test, Basic)
{
// need code here to define "2\n"
// as the next input for std::cin
ASSERT_EQ(readUserInput(), 2);
}
int main(int argc, char **argv) {
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}