我有这个普通的单元测试,它可以按预期工作,只要我省略了构造函数。
import sys
import unittest
class Instance_test(unittest.TestCase):
def __init__(self):
super(Instance_test, self).__init__()
self.attribute = "new"
def test_something(self):
pass
def test_other(self):
self.assertTrue(True)
pass
def setUp(self):
pass
def tearDown(self):
pass
def suite():
return unittest.makeSuite(Instance_test, "test")
def main():
runner = unittest.TextTestRunner(sys.stdout)
runner.run(suite())
if __name__ == "__main__":
main()
Run Code Online (Sandbox Code Playgroud)
使用构造函数获取此回溯:
回溯(最近一次调用最后一次):
文件“f:\gt\check.py”,第 31 行,在 main() 中
文件“f:\gt\check.py”,第 28 行,在主目录中
runner.run(suite())
文件“f:\gt\check.py”,第 24 行,套件
返回 unittest.makeSuite(Instance_test, "test")
文件“C:\Python34\lib\unittest\loader.py”,第 374 行,在 makeSuite 中
测试用例类)
文件“C:\Python34\lib\unittest\loader.py”,第 70 行,在 loadTestsFromTestCase
Loaded_suite = self.suiteClass(map(testCaseClass, testCaseNames))
文件“C:\Python34\lib\unittest\suite.py”,第 24 行,在 __init__ 中
self.addTests(测试) … 我编写了一个Java Card小程序,它将一些数据保存在偏移量的APDU缓冲区中ISO7816.OFFSET_CDATA,并将这些字节作为响应发送.
Util.arrayCopy(Input_Data, (short)0, buffer, (short) ISO7816.OFFSET_CDATA, (short)Datalength);
apdu.setOutgoing();
apdu.setOutgoingLength((short)(DataLength) );
apdu.sendBytesLong(buffer, ISO7816.OFFSET_CDATA, (short)(DataLength));
Run Code Online (Sandbox Code Playgroud)
我在模拟器中测试了这个没有任何问题.但是当我在一张真正的智能卡(由金雅拓制造的Java Card v2.2.1)上进行测试时,我将状态字0x6180作为响应.
我的命令APDU是00 40 00 00 80 Data,其中数据长度为128字节,因此缓冲区中有4 + 128字节,(260-(4 + 128))字节为空.
我生活在假设中,定义_ _len_ _和_ _getitem_ _方法对于一个类来说已经足够了,所以它的实例可以通过a迭代for element in instance:,直到它被违反了一个例子.我的原始代码完全不同,但这显示了很好地进入无限循环的问题:
class Limited(object):
def __init__(self, size=5):
self.size = size
def __len__(self):
return self.size
def __getitem__(self, item):
return item*10
if __name__ == "__main__":
test = Limited(4)
assert len(test) == 4
for q in test:
print q
Run Code Online (Sandbox Code Playgroud)
我找不到对终止迭代循环的要求的具体引用,但似乎如果不想遵守完整的Iterator协议,则需要像IndexError或StopIteration这样的异常才能终止.
这是正确的,在哪里找到它记录?
我试图在clojure中分割一个字符串" Hello|World"但是当使用split方法时" (clojure.string/split x #"|")"我得到了一个奇怪的结果,我得到了这个"[h e l l o | w o r l d]".任何人都可以告诉我它为什么这样做,我怎么能把它分开来得到[hello world]?
python ×2
apdu ×1
clojure ×1
error-code ×1
javacard ×1
protocols ×1
python-2.7 ×1
regex ×1
smartcard ×1
unit-testing ×1