基于Python的单元测试像“鼻子”这样的框架有很多丰富的功能,我想知道我们是否可以利用它们来测试C代码。
答案 0 :(得分:14)
当然你可以....但是你必须编写一个绑定来在python中调用你的C代码(例如用ctypes),并在python中编写测试(这真的是可能的,一种简单的方法来进行智能测试)
示例:
foolib.c
int my_sum(int , int);
int my_sum(int a , int b);
{
return a + b;
}
gcc -shared -Wl,-soname,foolib -o foolib.so -fPIC foolib.c
foolib_test.py
import ctypes
import unittest
class FooLibTestCase(unittest.TestCase):
def setUp(self):
self.foolib = ctypes.CDLL('/full/path/to/foolib.so')
def test_01a(self):
""" Test in an easy way"""
self.failUnlessEqual(4, foolib.my_sum(2, 2))
然后,当用鼻子运行这个测试时,你应该对你的C代码进行一次很好的测试:)