How to write good test


Correctness

  1. Doesn’t write depend on known bugs
// DO NOT DO THIS!!!
int square(int x){
	// TODO
	return 0;
}
TEST(SqureTest, MathTest){
	EXPECT_EQ(0, square(2));
}
  1. Write Test base on real scenarios

Readability

  1. Should be obvious to the future reader
TEST(BigSystemTest, CallIsUnImplemented){
	BigSyste system = Initialize();   // make initialize short by function
	EXCEPT_EQ(42, system.PrivateKey());
}
  1. Don’t advanced test framework when it isn’t necessary.
    A test should be like a novel: setup, action, conclusion.

Completeness

  1. Test for common inputs, corner cases, outlandish cases:
EXCPECT_EQ(1, Factorial(1));
EXCPECT_EQ(std::numeric_limints::max<int>(), Factorial(13));
EXCPECT_EQ(std::numeric_limints::max<int>(), Factorial(13));
  1. Only test the thing your responsible.

Demonstrability

  1. Test the API works, do not test private member. (Test the use of consumer. )
  2. Test shows how the usage of API

Resilience

  1. Don’t write flaky test. (re-run get different result.)
  2. Don’t write brittle test. (tests those may fail with unrelated code change.)[hermeticity, order, Deep Dependence]
sleep(1);  // may failure if test timeout is 0.5
---------------------
fopen();  //may fail if multi test read/write a same file. (should be hermeticity)
---------------------
static int i = 0;    // may fail 
TEST(Foo, First){
.....
++i;
}
TEST(Foo, Second){
.....
++i;
}
----------------------
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如何写出世界级的文章? 要想写出世界级水平的文章,首先需要有扎实的基础知识和广泛的阅读背景。通过广泛阅读世界各类文学作品,不断积累词汇量、语法结构和写作技巧,可以提高自己的写作水平,并丰富自己的思想和见识。 其次,需具备独到的观察力和思考能力。观察力是发现身边细节的能力,要善于观察生活中的人物、事件、自然景观等,从中汲取灵感,体会自然和人文的美。思考能力则通过深入思考,将自己的见解、观点和思想表达出来。 第三,需要注重事实准确性和逻辑性。在撰写文章时,应当通过查证和分析,确保所表达的事实真实可靠,避免出现偏见和错误。逻辑性则是指文章的结构和推理的合理性,应当先后有序地陈述观点,并通过逻辑思维进行合理的推理,让整篇文章表达清晰连贯。 最后,需要注重语言表达的准确和风格的独特性。语言的准确性指要选词用语得当、清晰明了,尽可能避免模糊或歧义的表达。同时,要注重个人的风格,通过独特的表达方式来塑造自己的文笔,使文章具有个人特色,给读者留下深刻印象。 总之,要写出世界级的文章,需要有充实的知识背景,独特的观察和思考能力,准确的事实和逻辑推理,以及个人的语言表达风格。通过不断的学习、实践和反思,可以逐渐提高写作的水平,最终达到世界级的水准。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值