eranpeer / FakeIt

C++ mocking made easy. A simple yet very expressive, headers only library for c++ mocking.
MIT License
1.24k stars 170 forks source link

error C2259: : cannot instantiate abstract class #70

Open hammonjj opened 8 years ago

hammonjj commented 8 years ago

I'm trying to use fakeit for a project of mine and I can't get anything to compile properly. This seems like a pretty straight forward interface, but I must be missing something (VS2013 Professional).

My Unit Test: TEST_METHOD(CreateEntity_ValidEntity) { fakeit::Mock<EntityAccess::IEntityWrangler> mock; fakeit::When(Method(mock, CreateBlankEntity)) .Return(CoreIOC::ClassRepository::BuildObjectByName<EntityAccess::IEntity>("EntityBase")); auto wrangler = mock.get();

My Interface: 'namespace EntityAccess { class NATIVEINTERFACE IEntityWrangler { public: typedef std::shared_ptr Ptr_t; virtual ~IEntityWrangler() {} virtual void SetConfiguration(const DataAccess::IConfiguration::Ptr_t &config) = 0; virtual IEntity::Ptr_t CreateBlankEntity(const char *entityType) = 0; virtual void GetEntityData(const IEntity::Ptr_t &filterEntity, IEntity::List_t &resultEntities) = 0; virtual void PersistEntityData(IEntity::Ptr_t &e) = 0; virtual void PersistEntityData(const IEntity::Ptr_t &filter, IEntity::Ptr_t &data) = 0; virtual void DestroyEntityData(IEntity::Ptr_t &e) = 0; virtual void DestroyEntityData(const IEntity::Ptr_t &filter, IEntity::List_t &deletedEntities) = 0; virtual const std::vectorstd::string &entityNames() const = 0; }; }'

Sorry about the formatting, but I am struggling with the code blocks!

eranpeer commented 7 years ago

Please supply a completed (as simplified as possible) sample code. I'm missing the IEntity and DataAccess classes.