溫馨提示×

如何測試c++中streamstring的準(zhǔn)確性

c++
小樊
83
2024-09-13 01:57:14
欄目: 編程語言

要測試C++中std::stringstream的準(zhǔn)確性,你可以編寫一些測試用例來檢查其功能是否符合預(yù)期

#include<iostream>
#include <sstream>
#include<string>
#include <cassert>

void test_stringstream() {
    // 測試1:向stringstream寫入數(shù)據(jù)并讀取
    std::stringstream ss1;
    ss1 << "Hello, World!";
    std::string str1;
    ss1 >> str1;
    assert(str1 == "Hello,");

    // 測試2:向stringstream寫入整數(shù)和浮點(diǎn)數(shù),然后讀取
    std::stringstream ss2;
    ss2 << 42 << " " << 3.14;
    int int_val;
    float float_val;
    ss2 >> int_val >> float_val;
    assert(int_val == 42);
    assert(float_val == 3.14f);

    // 測試3:從stringstream讀取不存在的數(shù)據(jù)
    std::stringstream ss3;
    int non_existent_value;
    ss3 >> non_existent_value;
    assert(ss3.fail());
}

int main() {
    test_stringstream();
    std::cout << "All tests passed!"<< std::endl;
    return 0;
}

這個示例包含了三個測試用例,分別測試了以下場景:

  1. std::stringstream寫入字符串并讀取。
  2. std::stringstream寫入整數(shù)和浮點(diǎn)數(shù),然后讀取。
  3. 嘗試從std::stringstream讀取不存在的數(shù)據(jù)。

在每個測試用例中,我們使用assert()函數(shù)來檢查結(jié)果是否符合預(yù)期。如果所有測試都通過,程序?qū)⑤敵?quot;All tests passed!"。如果有任何斷言失敗,程序?qū)⒔K止并顯示失敗的斷言。

0